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).
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!