Ejecutar programas a intervalos regulares con watch
El comando watch nos permite ejecutar comandos o scripts de forma periódica desde la terminal. Se puede utilizar con cualquier tipo de programa, permitiendo por ejemplo monitorizar procesos, listas de archivos/datos o conexiones a internet, sin la necesidad de repetir el mismo programa una y otra vez.
Así la sintaxis del programa sería:
watch <comando>
Si queremos consultar por ejemplo el consumo de memoria cada dos segundos, que es la opción de tiempo por defecto, que trae watch podemos hacer
watch vmstat -sSM
Ese intervalo de tiempo en algunos casos puede ser demasiado corto o extenso, lo podemos modificar fácilmente añadiendo la opción -n seguido del tiempo en segundos
watch -n <segundos> <comando>
Supongamos que queremos saber, si a nuestro vecino le gusta jugar con el aircrack, podemos ejecutar nmap ó fping y detectar todos los equipos conectados al router cada 5 minutos.
watch -n 300 fping -s -g 192.168.1.0/24
Como los resultados suelen ser muy extensos puede ser conveniente redirigir la salida de la terminal a un archivo de texto así nos quedaría
watch -n 300 fping -s -g 192.168.1.0/24>archivo
Con watch también podemos resaltar las diferencias que se producen al ir ejecutando un programa, con la opción -d
watch -d <comando>
Por ej:
watch -d date
El comando watch viene por defecto en todas las distros linux, si queréis consultar las opciones completas lo podéis hacer, ejecutando watch --h







