Ciao a tutti e benvenuti in questa piccola guida dove vi mostro come eseguire un comando ad intervalli regolari su un computer Mac. Vi sarà capitato spesso di volete eseguire un comando ogni tot di secondi. Per esempio se si vuole effettuare un ping ad un server per controllare il suo stato ogni n secondi. Per fare ciò su un computer Linux, si può fare uso del comando watch. Questo comando non è disponibile in default su un computer mac, ma può essere installato con Brew.
Come installare watch su mac con Brew
Prima di tutto assicuratevi di avere Brew installato sul vostro computer.
Se avete installato Brew correttamente, potete eseguire il seguente comando nel vostro Terminal Mac per installare watch:
brew install watch
Come eseguire un comando ogni tot tempo su Mac
Ora vediamo come eseguire un comando ogni n secondi. In questo esempio andiamo ad eseguire un ping per controllare se un server è ancora funzionante, ma le possibilità sono infinite :) Per eseguire un ping ogni 10 secondi eseguite il seguente comando nel terminale:watch -n 10 ping 127.0.0.1
In generale il formato del comando è:
watch [opzioni] comando
Vedrete che in output verrà mostrato solamente un ping alla volta. A volte può anche sembrare che watch sia eseguendo un comando una sola volta se l’output del comando è sempre lo stesso. Questo è dato dal fatto che il comando watch, sovrascrive l’output ogni volta che esegue il comando.
Se volete vedere che in effetti un comando viene eseguito ogni n secondi, provate con il comando date.
watch -n 5 date
Vedrete che ogni 5 secondi verrà mostrata la data attuale con ora, minuti e secondi.
Come ripetere uno script ogni tot di tempo usando un file .sh
Se invece volete eseguire uno script in un file ogni tot di tempo, potete usare il comando watch e passare il nome del file. Per esempio: Creiamo un file chiamato comando.sh ed al suo interno andiamo ad inserire:#!/bin/bash
date
Salviamo il file ed eseguiamo il comando:
watch -n 5 ./comando.sh
Vedrete che il file viene eseguito (Se avete problemi di permessi ricordatevi di eseguire chmod u+x comando.sh)
Ci siamo abbiamo visto come eseguire o ripetere un comando ogni tot di tempo usando watch su un computer Mac.