watch (Unix)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda


watch es un comando de la familia de los Sistemas Operativos Unix. Sirve para ejecutar periódicamente un comando y mostrar lo que este imprime en pantalla completa, permitiendo ver claramente como cambian los datos tras cada ejecución.[1]

Es muy útil para hacer monitoreos del estado de un sistema como por ejemplo el uso de recursos, procesos que están corriendo, etc, así como también para hacer el seguimiento de otro tipo de información que se quiera examinar. Para lograr esto último el usuario puede obtener la información que desea monitorizar con el uso de tuberías o bashscripts.


Modo de uso[editar]

La invocación del comando watch tiene el siguiente formato:

  • watch [PARÁMETROS..] COMANDO

Cuando se ejecuta watch sin indicar parámetros, este ejecuta cada dos segundos el comando indicado.

En cuanto al comando, es posible pasarle uno que incluya parámetros, haciendo uso de las comillas dobles (") o simples ('). También haciendo uso de estas comillas podemos aprovechar las tuberías, obteniendo un mejor resultado al momento de procesar la información.

En algunos casos de que la interpretación del comando indicado sea errónea por el uso de las comillas, watch ofrece la posibilidad de delegar su ejecución con exec, haciendo uso del parámetro (-x ó --exec).

Es importante aclarar que watch se ejecuta de forma ininterrumpida, y la única forma de finalizarlo es con la combinación de teclas como es Ctrl+C o bien de alguna forma externa, como por ejemplo usando el comando kill o a fines.

Sus parámetros principales son:

-n N, --interval=N
Establece cada N segundos se refresca la pantalla. Este parámetro considera a N, como el tiempo entre que finaliza la ejecución del comando y el próximo llamado al mismo. Para forzar a ejecutar de forma mas precisa use -p o --precise.
-p, --precise  
Fuerza a que el refresco de pantalla se logre en los segundos indicados en el parámetro -n o --interval.
-d, --differences=N 
Remarca la diferencia del texto entre cada salida. Es posible indicarle que remarque entre N refrescos las diferencias. Vale aclarar que esta función no es perfecta.
-b, --beep 
Realiza un beep en el parlante del sistema, si la ejecución del comando termina con errores.
-c, --color 
Interpreta los códigos de escape de color ANSI del texto que se visualiza.
-e, --errexit 
Obliga a watch a cerrarse si el comando' se ejecuta con errores.
-t, --no-title 
Indica que no se muestre la frecuencia de refresco, el comando y la hora cuando se ejecuta watch.
-x. --exec
Ejecuta el comando vía exec.

Ejemplos[editar]

Monitorizar el uso de espacio en las distintas unidades del Sistema:

  • watch "df -h"

Monitorizar los procesos de navegadores web como firefox, midori o chromium cada 5 segundos mostrando las diferencias:

  • watch -n 5 -d "ps -ely | grep -E 'firefox|midori|chromium-browse'"

Nota: con ps se listan todos los procesos, y con grep se logra aislar cualquiera de las tres variantes.

Monitorizar los 20 últimos registros mas recientes de la pagina especial Cambios Recientes de wikipedia en español cada 10 segundos:

watch -n 10 "wget -qO- 'http://es.wikipedia.org/wiki/Especial:CambiosRecientes' | grep -m 20 \
 'mw-changeslist-line-not-watched' | w3m -dump -T text/html -cols 160"

Nota: El anterior comando requiere tener instalado w3m. El uso de la "\" es para garantizar la ejecución por mas que este en dos lineas el comando.

Se puede visualizar el resultado del comando anterior aquí: Watch - Ejemplo de monitorizacion en Cambios Recientes esWP

Véase también[editar]

Enlaces externos[editar]

Referencias[editar]