Usar watch en Linux: repetir ejecución de comandos

Ya sabemos que para automatizar tareas disponemos de cron y at. Estas dos herramientas son ideales para cuando necesitamos realizar operaciones de manera periódica y no interactiva. Sin embargo, no tiene mucho sentido emplearlas cuando deseamos ver resultados por la pantalla o repetir la ejecución de un comando con una periodicidad menor al minuto. Para este último caso podemos usar watch en Linux, un herramienta que cumple con ambos requisitos.

Usar watch en Linux

Watch nos permite repetir la ejecución de un comando cada un cierto número de segundos. El valor por defecto es 2 segundos, pero puede cambiarse fácilmente mediante la opción -n. Además, watch permite que veamos los cambios en el resultado del comando en sucesivas ejecuciones. La opción -d nos servirá para este último.

En la Animación 1 vemos el resultado de ejecutar el comando

watch -d -n 1 'cat /proc/loadavg'

Si estamos utilizando un equipo con relativamente poca actividad, nos será difícil apreciar la utilidad de esta herramienta. Para provocar cambios en los load averages a fin de visualizar las actualizaciones del comando anterior, tendremos que generar algo de actividad. Por suerte, podemos recurrir a dd de la siguiente manera:

dd if=/dev/zero of=archivo.iso bs=1M count=1000

En este ejemplo, estamos utilizando dd para generar un archivo «lleno de ceros» utilizando 1000 bloques de 1 MB (1000 x 1 MB = 1 GB).

Usar watch en Linux para repetir la ejecución de un comando
Animación 1 – Usar watch en Linux para repetir la ejecución de un comando

Para interrumpir la ejecución bastará presionar la combinación de teclas Ctrl + C.

Otros ejemplos

En el man page de watch se sugieren otros usos posibles para esta herramienta:

  • Ver la lista de correos salientes del equipo cada un minuto: watch -n 60 from
  • Visualizar cambios en el contenido de un directorio (digamos /home/gacanepa): watch -d ls -l /home/gacanepa

En síntesis, watch no solamente nos permite repetir la ejecución de un comando, sino también identificar los cambios que hubo entre un caso y el siguiente.

Espero que este post les haya resultado útil. ¡Nos leemos en breve!

¡Aprovechá la oportunidad de suscribirte al blog para recibir en tu correo el post nuestro de cada día, novedades, y promociones exclusivas!