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

One thought on “Ejecutar programas a intervalos regulares con watch”

  1. Swicher says:

    También sirve para ver la salida de comandos concatenados, para ello solo basta con poner todo entre comillas, así por ejemplo:
    watch 'ls | grep -i .html | wc -l'
    En este caso lista los archivos del directorio actual, pasa a grep para buscar solo los archivos con extensión .html y lo que se muestra es el numero de lineas de la entrada estándar (o lo que es lo mismo, la cantidad de archivos html del directorio actual).

Deja un comentario

A %d blogueros les gusta esto: