Ci sono molte volte in cui devi aspettare che qualcosa finisca, come ad esempio:
- Scarica un file.
- Creazione o estrazione di un file tar.
- Un lavoro Ansible.
Alcuni di questi processi hanno una sorta di indicazione del progresso, ma a volte il processo viene eseguito attraverso uno strato di astrazione e l'unico modo per misurare il progresso è attraverso i suoi effetti collaterali. Alcuni di questi potrebbero essere:
- Un file scaricato continua a crescere.
- Una directory estratta da un tarball si riempie di file.
- Il lavoro Ansible crea un container.
Puoi interrogare tutte queste cose con comandi come questi:
$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps
Ma eseguendo questi comandi più e più volte, anche se è con la comodità della cronologia di Bash e della Freccia su , è noioso.
Un altro approccio è scrivere un piccolo script Bash per automatizzare questi comandi per te:
while :
do
docker ps
sleep 2
done
Ma tali script possono anche diventare noiosi da scrivere. Potresti scrivere un piccolo script generico e impacchettarlo, quindi è sempre disponibile per te. Fortunatamente, altri sviluppatori open source sono già stati lì e l'hanno fatto.
Il risultato è il comando watch
.
Più risorse Linux
- Comandi Linux cheat sheet
- Cheat sheet sui comandi avanzati di Linux
- Corso online gratuito:Panoramica tecnica RHEL
- Cheat sheet della rete Linux
- Cheat sheet di SELinux
- Cheat sheet dei comandi comuni di Linux
- Cosa sono i container Linux?
- I nostri ultimi articoli su Linux
Installazione dell'orologio
L'watch
il comando fa parte del procps-ng
pacchetto, quindi se sei su Linux, lo hai già installato.
Su macOS, installa watch
usando MacPorts o Homebrew. Su Windows, usa Chocolatey.
Utilizzo dell'orologio
L'watch
comando esegue periodicamente un comando e ne mostra l'output. Ha alcune sottigliezze del terminale di testo, quindi solo l'ultimo output è sullo schermo.
L'utilizzo più semplice è:watch <command>
.
Ad esempio, anteponendo la docker ps
comando con watch
funziona così:
$ watch docker ps
L'watch
comando e alcuni trucchi creativi da riga di comando Unix possono generare dashboard ad hoc. Ad esempio, per contare gli eventi di controllo:
$ watch 'grep audit: /var/log/kern.log |wc -l'
Nell'ultimo esempio, è probabilmente utile se è presente un'indicazione visiva che il numero di eventi di controllo è cambiato. Se è previsto un cambiamento, ma vuoi che qualcosa appaia "diverso", watch --differences
funziona bene. Evidenzia eventuali differenze rispetto all'ultima corsa. Funziona particolarmente bene se stai grepping in più file, in modo da poter vedere facilmente quale è stato modificato.
Se non sono previste modifiche, puoi chiedere che vengano evidenziate "permanentemente" per sapere quali indagare utilizzando watch --differences=permanent
. Questo è spesso più utile.
Frequenza di controllo
Infine, a volte il comando potrebbe richiedere molte risorse e non dovrebbe essere eseguito troppo frequentemente. Il -n
parametro controlla la frequenza. Watch utilizza due secondi per impostazione predefinita, ma watch -n 10
potrebbe essere appropriato per qualcosa di più dispendioso in termini di risorse, come grepping per un pattern in qualsiasi file in una sottodirectory:
$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'
Guarda un comando con watch
L'watch
Il comando è utile per molte attività di amministrazione del sistema ad hoc in cui è necessario attendere alcuni passaggi dispendiosi in termini di tempo, senza una barra di avanzamento, prima di passare a quello successivo. Anche se non è una bella situazione in cui trovarsi, watch
può renderlo leggermente migliore e darti il tempo di iniziare a lavorare su quelle note per la retrospettiva! Scarica il cheat sheet per tenere a portata di mano sintassi e opzioni utili.