A volte è utile eseguire più e più volte lo stesso comando fino a quando qualcosa accade, per esempio si potrebbe voler fare un ls-lrt
fino a quando un file ha raggiunto una certa dimensione o è creato, come fare?
Certo si può usare la storia della bash ed usare freccia in su e farlo più e più volte, o magari scrivere qualche riga di bash per avere un ciclo infinito che esegue lo stesso comando, ma c’è un approccio più intelligente per far questo: watch
.
Watch
watch esegue i comandi ripetutamente, mostrando il suo output e gli errori. Questo vi permette di osservare il cambiamento di output del programma nel corso del tempo. Per impostazione predefinita, il programma viene eseguito ogni 2 secondi; usando -n o –interval è possibile specificare un intervallo diverso. Normalmente questo intervallo viene interpretato come il lasso di tempo tra il completamento di una esecuzione del comando e l’inizio della prossima esecuzione. Tuttavia, con l’opzione -p o –precise, è possibile effettuare un tentativo di eseguire il comando ogni intervallo indicato.
Uso Base
watch "qui il comando con le sue opzioni" |
Questo farà eseguire il comando con le sue opzioni ogni 2 secondi
Opzioni
Le opzioni più comuni per watch sono:
-n impostare l’intervallo in secondi.
-d metterà in evidenza le differenze tra gli aggiornamenti successivi.
-b fa sì che il comando dia un segnale acustico (beep) se ha un non-zero come uscita.
-e causa l’uscita di watch su un errore del programma in esecuzione.
Alcuni esempi
1) Visualizzare il contenuto di una directory con le differenze evidenziate
watch -d "ls -alrt /tmp/ |
2) Stampa l’orario e lo aggiorna ogni secondo:
watch -t -n 1 "date +%T|figlet" |
Output
___ ___ ____ ____ _________ / _ / _ _|___ | ___|_|___ /___ | | | | | | (_) __) |___ (_) |_ __) | | |_| | |_| |_ / __/ ___) | ___) / __/ ___/ ___/(_)_____|____(_)____/_____|
3) Controlla le query lanciate su Mysql
watch -n 1 "mysqladmin --user=root --password=mypassword processlist" |
4) Mostra i 10 processi che stanno consumando più CPU:
watch 'ps -eo pcpu,pid,user,args | sort -k 1 -n -r | head -10' |
Conclusioni
watch è un piccolo comando di shell che come molti comando Unix fa 1 cosa sola e la fa bene, ripete un comando e mostra il suo output.
Ma anche “solo” facendo questo mi ha aiutato in molte occasioni, e spero possa fare altrettanto con voi.
Popular Posts:
- None Found
Very nice article. You want edit some of the formatting in the article, though. For example:
watch -n 1 “mysqladmin –user= –password= processlist”
WordPress is adding ending tags to and 😀
Nice tip 🙂