Γεια χαρά σε όλους!
Νωρίτερα σήμερα έγραψα ένα απλό script για να μπορεί να βλέπει όποιος χρησιμοποιεί linux και τρέχει τον F@H client στο background το ποσοστό της τρέχουσας WU.
Το πόσταρα στο thread του TheCondor
Ωστόσο το εξέλιξα αρκετά, πρόσθεσα και άλλες πληροφορίες όπως πότε ξεκίνησε η συγκεκριμένη WU και πότε λήγει (και δεν παίρνετε πόντους T_T) και νομίζω ότι είναι έτοιμο για γενική χρήση!!!
Δείτε το και πείτε μου τη γνώμη σας.
Το έχω σαν attachment αλλά και σαν κώδικα για όσους δεν εμπιστεύονται τα attachments!
Πως λειτουργεί:######
# Script by Marios Andreopoulos
#
# A really basic script for viewing
# "Folding@Home" clients' stats in a
# nice way at a linux terminal :-)
#
# The script is so basic you are
# allowed to do whatever you want
# with it!
# Have fun and be creative!
######
# Usage:
# Just go to the end of the script and use the printFaHclient function to print
# info for as many clients as you want.
#
# i.e. Suppose you have a Folding@Home client installed at /foo/bar and you want to refer to it as "My PC client1"
# Then you add this line at the end of the script:
#
# printFaHclient "My PC client1" /foo/bar
#
# Just do it for as many clients you want
#!/bin/bash
printFaHclient() {
# 1st Client
echo -ne "\033[1m$1:\033[35m "
echo -n `grep -o "Progress.*%" $2/unitinfo.txt | sed -e 's/.*ress: //'`
echo -ne "\033[0m [\033[;36m WU name: "
echo -ne `grep Name $2/unitinfo.txt | sed -e 's/Name: //'`"\033[0m"
echo -ne ", \033[32mstarted at "`grep Download $2/unitinfo.txt | sed -e 's/.*time: //'`
echo -e "\033[0m, \033[31mexpires at "`grep Due $2/unitinfo.txt | sed -e 's/.*time: //'`"\033[0m ]"
}
# Here you add the clients you want to print info for. Some examples follow.
# printFaHclient "ServerPC Client1" /home/user/foldingathome1
# printFaHclient "ServerPC Client2" /home/user/foldingathome2
Θα χρειαστεί να χρησιμοποιήσετε για λίγο τον λογαριασμό του root.
Μπείτε ως root (οι πιο έμπειροι βέβαια μπορούν να το κάνουν μονάχα από την κονσόλα)
Αντιγράψτε το αρχείο μέσα στο συννημένο zip στο φάκελλο /usr/bin του συστήματός σας.
Ενναλακτικά αν δεν θέλετε να χρησιμοποιήσετε το zip δημιουργείστε ένα νέο αρχείο στο /usr/bin με το όνομα "foldstats" χωρίς κατάληξη και κάντε copy-paste τον κώδικα μέσα στο quote.
Ανοίξτε μια κονσόλα και πληκτρολογήστε την εντολή:
chmod 755 /usr/bin/foldstats
ώστε να το κάνετε εκτελέσιμο!
Τέλος ανοίξτε το με έναν editor (το foldstats βρε!) για να δηλώσετε τους clients σας!
Η διαδικασία είναι πολύ απλή!!!
Πηγαίντε κάτω κάτω στο αρχείο και για κάθε client που έχετε γράψτε μια γραμμή όπως αυτή:
printFaHclient "πως θέλετε να λέγεται ο client" /directory/που/είναι/εγκατεστημένος
Αυτό ήταν! Κάντε logout από root! Τώρα αν όλα πήγαν καλά κάθε φορά που σε μια οποιαδήποτε κονσόλα τρέχετε foldstats θα παίρνετε κάτι τέτοιο:
Client1: 97% [ WU name: p885_p53dimer885, started at May 24 01:57:45, expires at July 2 01:57:45 ]
Client2: 85% [ WU name: p1803_Collagen_POG10_ref, started at May 24 12:54:49, expires at June 14 12:54:49 ]
Ελπίζω να φανεί χρήσιμο σε κάποιους!
Προτάσεις, διορθώσεις και σχόλια δεκτά!
Tip. Επειδή έχω δύο pc που τρέχουν F@H clients φρόντισα να κάνω το φάκελο του folding του 2ου pc δικτυακό (προσωπικά χρησιμοποιώ nfs, κάποιοι ίσως θέλετε smb). Έτσι το πρώτο pc τον βλέπει σαν κανονικό φάκελλο και πρόσθεσα στο script και τους clients του δεύτερου pc για να έχω μια πιο σφαιρική πληροφόρηση!
Η πιο πρόσφατη έκδοση του script βρίσκεται στο 5ο post !
Εμφάνιση 1-15 από 15
-
27-05-05, 06:04 Linux script για πληροφορίες των Folding clients σε κονσόλα! (aDSLgr exclusive!) #1
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Τελευταία επεξεργασία από το μέλος mrsaccess : 27-05-05 στις 18:58.
Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
27-05-05, 07:07 #2
Εξαιρετικο! Το δοκιμασα και δουλευει αψογα! ( τι ωρα και αυτη που ποσταρω.... τα γ@@@@α τα κουνουπια δεν με αφηνανε να κοιμηθω )
-
27-02-06, 04:12 #3
Ωραίος! Επόμενο project είναι να υπολογίζει πότε περίπου θα τελειώσει το unit όπως η γραφική κονσόλα των win
-
27-02-06, 05:47 #4
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Αρχικό μήνυμα από mich83Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
27-02-06, 07:59 Νέο, εξελιγμένο script! #5
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Είναι γεγονός! Το νέο εξελιγμένο script -mfah- με μπλε και πράσινους κόκκους είναι εδώ!
Changelog:
-Μίκρυνα λίγο την γραμμή με τις πληροφορίες για να χωράει σε μικρότερα terminal.
-Πλέον το script υπολογίζει το χρόνο που χρειάζεται για να τελειώσει μία πρωτεΐνη!
Το script λαμβάνει υπόψιν του αν η πρωτεΐνη ξεκίνησε το προηγούμενο χρόνο (δεν μασάει ούτε στα δίσεκτα), ενώ σας ενημερώνει αν δεν μπορεί να υπολογίσει σωστά τον χρόνο που απαιτείται για την ολοκλήρωση της πρωτεΐνης επειδή δεν έχει αρκετά δεδομένα.
Screenshot Emulation (τι βλέπω όταν το τρέχω στο pc μου)
Κώδικας:mrsaccess@ElectraWS MariosProTools $ ./mfah ElectraII client1: 33% [ WU name: p2306_BBA5_pfold in water, from Feb 25 23:38, till Apr 19 23:38 ] Runtime from start : 28h 32m. Estimated time remaining: 57h 57m ElectraII client2: 1% [ WU name: p2306_BBA5_pfold in water, from Feb 27 02:47, till Apr 21 02:47 ] Runtime from start : 1h 24m. Estimated time remaining: 138h 54m (Warning! Progress is in too early stage for accurate estimation.) Sempron client: 62% [ WU name: p2306_BBA5_pfold in water, from Feb 26 08:55, till Apr 20 08:55 ] Runtime from start : 19h 16m. Estimated time remaining: 11h 48m. mrsaccess@ElectraWS MariosProTools $
»Κατεβάζετε το script ή οι πιο άπιστοι κάνετε το κώδικα copy-paste σε ένα νέο αρχείο.
»Το ανοίγετε με τον αγαπημένο σας editor.
»Ορίζετε στην μεταβλητή GMT_diff τη διαφορά ώρας του υπολογιστή σας από την ώρα GMT. Λογικά δεν θα χρειαστεί να το πειράξετε, θα το αφήσετε 2. Αν ωστόσο έχετε ρυθμίσει τον υπολογιστή σας σε ώρα GMT τότε κάνετέ το 0.
»Πηγαίνετε στο τέλος του αρχείου και ρυθμίζεται τους clients σας.
Για κάθε client προσθέτετε μια τέτοια γραμμή:
printFaHclient "πως θέλετε να λέγεται ο client" /directory/που/είναι/εγκατεστημένος
» Ως root αντιγράφετε το αρχείο στο /usr/bin σας, το κάνετε εκτελέσιμο και του δίνετε σωστά permissions:
cp mfah /usr/bin
chown root:root /usr/bin/mfah
chmod 755 /usr/bin/mfah
Για να το τρέξετε πλέον, σε μια οποιαδήποτε κονσόλα δώστε mfah
Ο κώδικας για τους άπιστους:
Κώδικας:######################################### # mfolding@home v2.0 # # Script by Marios Andreopoulos # # # # A really basic script for viewing # # "Folding@Home" clients' stats in a # # nice way at a linux terminal :-) # # # # The script is so basic you are # # allowed to do whatever you want # # with it! # # Have fun and be creative! # ######################################### # Usage: # Just go to the end and use the printFaHclient function to print # info for as many clients as you want. # # i.e. You have a Folding@Home client installed at /foo/bar and you want to refer to it as "My PC client1" # Then you add this line at the end of the script: # printFaHclient "My PC client1" /foo/bar # Just do it for as many clients you want # # Oh, one last thing. Remember to change the GMT_diff variable according to your computer's timesettings. #!/bin/bash #Please change this according to your PC time difference from the GMT. #You can use negative numbers, but do not use signs in positive ones. #For example if you have your machine configured to Greek Local Time then you are 2 hours ahead GMT. GMT_diff=2 printFaHclient() { Progress=$(grep -o "Progress.*%" $2/unitinfo.txt | sed -e 's/.*ress: //' | sed -e 's/\%//') # Print Client Info echo echo -ne "\033[1m$1:\033[35m " echo -n $Progress% echo -ne "\033[0m [\033[;36m WU name: " echo -ne `grep Name $2/unitinfo.txt | sed -e 's/Name: //'`"\033[0m" echo -ne ", \033[32mfrom "$(date -d "$(grep Download $2/unitinfo.txt | sed -e 's/.*time: //')" +%b\ %e\ %H:%M) echo -e "\033[0m, \033[31mtill "$(date -d "$(grep Due $2/unitinfo.txt | sed -e 's/.*time: //')" +%b\ %e\ %H:%M)"\033[0m ]" # Estimate hours to completion if (( $Progress == 0 )); then #Check if we can make estimations. echo -e "\033[1;36;5mNo enough data to estimate hours to completion.\033[0m" else NOW=$(expr $(date +%s) - $(expr $GMT_diff \* 3600)) START=$(date -d "$(grep Download $2/unitinfo.txt | sed -e 's/.*time: //')" +%s) Running=$(expr $NOW - $START) if (( Running < 0 )); then #Check if the unit started in the previous year. if (( $(expr $(expr $(date +%G) - 1) % 4) == 0 )); then #Check if the previous year was leap. START=$(expr $START - 31622400) else START=$(expr $START - 31536000) fi Running=$(expr $(expr $NOW - $START)) fi Remaining=$(expr $(expr $Running \* $(expr 100 - $Progress)) / $Progress) if (( $Remaining == 0 )); then #Check if we can make estimations. echo -e "\033[1;36;5mNo enough data to estimate hours to completion.\033[0m" else echo -e "\033[1;32mRuntime from start : $(expr $Running / 3600)h $(expr $(expr $Running % 3600) / 60)m" echo -ne "\033[1;31mEstimated time remaining: $(expr $Remaining / 3600)h $(expr $(expr $Remaining % 3600) / 60)m\033[0m" if (( $Progress < 10 )); then #Check if accuracy is compromised by short progress. echo " (Warning! Progress is in too early stage for accurate estimation.)" fi echo fi fi } # Here you add the clients you want to print info for. Some examples follow. # printFaHclient "ServerPC Client1" /home/user/foldingathome1 # printFaHclient "ServerPC Client2" /home/user/foldingathome2
Thanx @ mich83 που μου πρότεινε να το κάνω!
Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
27-02-06, 13:47 #6
Είσαι ΑΣΤΕΡΙ
edit: Δουλεύει άψογα. Μοds ακόμα να το κάνετε sticky;;;Τελευταία επεξεργασία από το μέλος mich83 : 27-02-06 στις 13:59.
-
28-02-06, 15:23 #7
Μάριε το έχεις βάλει να υπολογίζει τον υπολειπόμενο χρόνο βάση του χρόνου που πέρασε από την ώρα που πρωτοξεκίνησε μέχρι τώρα υπολογίζοντας το αν εγώ π.χ. κλείσω το pc μου για 2 μέρες; To λέω γιατί το έκλεισα για το βράδυ (ήθελε 65 ώρες ακόμα) και μόλις το άνοιξα το πρωί έλεγε ότι ήθελε 75 ώρες ακόμα. Και δεν φταίει το ότι δεν είχε προλάβει να "πιάσει το ρυθμό" γιατί τώρα (7 ώρες μετά λειτουργώντας 100%) λέει ότι μένουν 67 ώρες, 2 περισσότερες απ' ότι χθες το βράδυ. Οπότε σκέφτηκα ότι δεν υπολογίζει τον χρόνο που μένει κλειστό η ανενεργό. Τα φώτα σου
-
28-02-06, 16:11 #8
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Ναι ακριβώς, δεν αφαιρεί το χρόνο που έχεις τον υπολογιστή κλειστό.
Δεν ξέρω αν μπορεί να γίνει αυτό χωρίς να τρέχει το πρόγραμμα συνέχεια στο background για να συλλέγει δεδομένα.
Τώρα για να καταλάβεις κοιτάει μόνο την πρόοδο (αρχείο unitinfo.txt μέσα στο φάκελο του client) και πότε ξεκίνησε η work unit.
Οπότε κάνει: ( τωρινή_ώρα - ώρα_που_ξεκίνησε ) × ( 1 - πρόοδος ) ÷ πρόοδος
Θα το κοιτάξω πάντως αλλά όχι τώρα επειδή φεύγω σε λίγο και θα λείψω για καμιά εβδομάδα.
Αν έχεις κάνα άλλο request πες το και όταν θα επιστρέψω θα το κοιτάξω και αυτό!
Ήδη έχω 2-3 πραγματάκια που θα ήθελα να προσθέσω.
Τα λέμε!
Μάριος.
ΥΣ. Από ότι ξέρω υπάρχουν προγράμματα για να παρακολουθείς το folding στο linux. Το script το έφτιαξα πιο πολύ γιατί ήθελα κάτι απλό για να παρακολουθώ όλους τους clients μου. Να τρέχω μια εντολή στη κονσόλα και να μου βγάζει την πρόοδο του καθενός.
Οπότε αν θες κάτι πιο advanced (γραφικό περιβάλλον, ενδεχομένως να μπαίνει στο tray σου) ψάξε για κάτι άλλο.Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
28-02-06, 16:18 #9Αρχικό μήνυμα από mrsaccess
Όχι επιμένω στο δικό σου Nα το βάλεις και στο portage κ.λ.π
-
22-11-06, 22:40 #10
Μαριε
Ηθελα να σε ρωτησω για το mfah στην κονσολα το κομματι που λεει πχ "from Νοεμβριο till Δεκεμβριο"
Μολις βαζω το encoding της κονσολας σε iso-8859-7 δεν εμφανιζει τους μηνες σωστα. Μονο με utf-8 αναγνωριζονται. Βεβαια εχει να κανει με τις ρυθμισεις μου. Μπορω να το αλλαξω να εμφανιζονται σωστα με iso-8859-7?
-
22-11-06, 23:08 #11
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Από ότι καταλαβαίνω έχεις όλο το σύστημά σου στα Ελληνικά και έτσι η εντολή date δίνει την ώρα & ημερομηνία στα Ελληνικά! Εγώ το έχω στα Αγγλικά.
Τη λύση θα στη δώσω στη long version γιατί τη θεωρώ ενδιαφέρουσα!
Το character encoding είναι system wide ρύθμιση. Δηλαδή έχεις βάλει το σύστημά σου να λειτουργεί με utf8 (και αυτό είναι το σωστό) και επομένως οι διάφορες εντολές και προγράμματα δίνουν στην έξοδο utf8.
Έχεις λοιπόν δύο επιλογές:
- Τρέχεις το mfah (ή οποιαδήποτε εντολή θες να δώσει iso-8859-7 αντί για utf8) ξεκινώντας τη με iso-8859-7 ρύθμιση:
Κώδικας:LC_ALL="el_GR" mfah
. - Μετατρέπεις την utf8 έξοδο σε iso-8859-7 με χρήση του εργαλείου iconv το οποίο υπάρχει στο σύστημά σου από τη glibc:
Κώδικας:mfah | iconv -f utf8 -t iso-8859-7
Αν θες μπορείς να φτιάξεις δύο versions του script για να έχεις εύκολα διαθέσιμα και τα δύο. Πχ mfahISO και mfahUTF.Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
23-11-06, 00:30 #12
-
23-11-06, 02:12 #13
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Αν την έβαλες στα Αγγλικά δεν χρειάζεται να προσθέσεις τίποτα. Το utf8 μεταφράζεται σωστά σε iso-8859-1 (Αγγλικά) χωρίς να έχει ανάγκη από κόλπα.
Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
-
05-12-06, 00:54 #14
Νομίζω πως έχει ένα λαθάκι στον κώδικα (όχι από το συννημένο)
Μου έβγαζε αυτό:
ServerPC Client1: 0% [[;36m WU name: Amber, started at December 4 21:07:09, expires at January 17 21:07:09 ]
αντι για αυτό
Client1: 0% [ WU name: Amber, started at December 4 21:07:09, expires at January 17 21:07:09 ]
Νομίζω αυτό:
echo -ne "\033[0m [\033[;36m WU name: "
Πρέπει να γίνει έτσι:
echo -ne "\033[0m [\033[36m WU name: "
έφαγα κανά 10λέπτο να το βρω καθότι άσχετος από κώδικες κτλ κτλ...
-
09-12-06, 22:07 #15
- Εγγραφή
- 27-08-2004
- Περιοχή
- internet
- Μηνύματα
- 23.371
- Downloads
- 58
- Uploads
- 17
- Άρθρα
- 9
- Ταχύτητα
- 49999 / 4999
- ISP
- ΟΤΕ Conn-x
- DSLAM
- ΟΤΕ - ΚΟΥΝΟΥΠΙΔΙΑΝΩΝ
Έχεις δίκιο μου ξέφυγε ένα semicolon παραπάνω.
Btw, συγγνώμη για την καθυστερημένη απάντηση.
Πάντως αν θέλεις την τελευταία έκδοση του script κοίταξε το 5ο post.Gentoo Linux: mess with the best and you might learn something
δικτυακή παράσταση | twitter | within specifications
Αν φτάσω τα 100 και με ρωτήσουν το μυστικό της μακροζωίας θα πω: Πάντα είχα 3 ποτήρια μπροστά μου· ένα με νερό, ένα με καφέ & ένα με αλκοόλ.
Παρόμοια Θέματα
-
Κονσόλα fax των XP
Από t300 στο φόρουμ WindowsΜηνύματα: 4Τελευταίο Μήνυμα: 07-10-07, 13:36 -
Μήπως υπάρχουν πληροφορίες για τη χρονική εξέλιξη των τιμών?
Από sira στο φόρουμ Γεγονότα και ΑπόψειςΜηνύματα: 8Τελευταίο Μήνυμα: 06-02-07, 16:56 -
Script για προγραμματισμένο defrag των Windows 2000
Από cyberp στο φόρουμ WindowsΜηνύματα: 0Τελευταίο Μήνυμα: 18-10-04, 14:49 -
Διαφορές μεταξύ των P2P Clients
Από JohnGR στο φόρουμ P2PΜηνύματα: 23Τελευταίο Μήνυμα: 23-07-04, 18:03
Bookmarks