Πολλές φορές έχει τύχει, ειδικά όταν συνδέομαι σε απομακρυσμένους υπολογιστές, να εκτελώ μία εντολή για παραπάνω από μία φορές, προσπαθώντας να δω την εξέλιξη μιας διαδικασίας. Η λύση στο πρόβλημα είναι η εντολή watch.
Η watch εκτελείται με παράμετρο την εντολή που μας ενδιαφέρει να εκτελούμε περιοδικά και αναλαμβάνει έργο. Κάθε δύο δευτερόλεπτα ανανεώνει την οθόνη με το αποτέλεσμα της εντολής. Μπορούμε να αυξήσουμε το διάστημα μεταξύ των εκτελέσεων με τη παράμετρο -n ή να υπογραμμίζεται τα σημεία της εξόδου της εντολής που αλλάξαν από την προηγούμενη εκτέλεση με τη παράμετρο -d.
Ένα τυπικό παράδειγμα εκτέλεσης της εντολής watch είναι
watch -n 5 -d date
η εκτέλεση του οποίου θα μας δίνει την ώρα, υπογραμμίζοντας ότι άλλαξε κάθε 5 δεύτερα. Φυσικά τίποτα (?) χρήσιμο δεν μπορείς να κάνεις με αυτή!
Η watch είναι χρήσιμη όταν παρακολουθούμε την εξέλιξη του μεγέθους καταλόγων
watch -n 5 du -sm bigdir/
Μπορούμε να χρησιμοποιήσουμε εισαγωγικά εάν η εντολή μας είναι πιο σύνθετη π.χ. Όταν θέλουμε να δούμε τα αρχεία που δημιουργεί ο μόνο ο χρήστης seadog
watch -n 5 "ls -lh | grep seadog"
Τα εισαγωγικά θα φανούν χρήσιμα και όταν χρησιμοποιούμε wildcards. Για παράδειγμα εάν θέλουμε να μάθουμε το μέγεθος των αρχείων στον κατάλογο που είμαστε και χρησιμοποιήσουμε την εντολή
watch du -sm *
και κατά τη διάρκεια εκτέλεσης εμφανιστεί ένα νέο αρχείο ή κατάλογος στο directory που παρακολουθούμε, αυτό δεν θα εμφανιστεί στην watch. Αυτό συμβαίνει γιατί το wildcard μεταφράζεται σε αρχεία, από το κέλυφος, όταν εκτελείται η watch και όχι σε κάθε εκτέλεση της du. Η εκτέλεση της εντολής με εισαγωγικά θα μας δώσει το επιθυμητό αποτέλεσμα
watch "du -sm *"
Η εντολή watch βρίσκεται στο πακέτο procps στο debian και στο ubuntu και πιθανότητα υπάρχει ήδη στο /usr/bin του υπολογιστή σας!
