Revista Informática

Manteniendonos informados con el comando watch en Linux

Publicado el 05 febrero 2016 por Drassill
En numerosas ocasiones queremos tener control absoluto de lo que ocurre en nuestro equipo, necesitando a veces ver cierta información en tiempo real. Ciertos comandos como top, son muy útiles por que muestran la información de dicha forma, pero aunque top es realmente útil, no es capaz de hacerlo todo por sí solo, y a veces es necesario ver otros asuntos en tiempo real... Un gran ejemplo de ello sería la comprobación del progreso de una descarga realizada desde subversion, que crea un fichero temporal dentro de la carpeta /usr/src/svn_download; fichero que iría incrementándose a medida que progresa la descarga. El ver dicho incremento requeriría recurrir constantemente al comando ls -la /usr/src/svn_download/,  y ver que el tamaño del archivo temporal va incrementándose cada vez que escribimos dicho comando... Una acción que si bien cumple su función, es tediosa y repetitiva... Esto se puede aplicar también a otros contextos como el uso del comando free o la comprobación del fichero /proc/diskstats (entre otros). Para evitar acciones repetitivas y al mismo tiempo controlar en tiempo real ciertas acciones, podemos recurrir a un comando bastante poco conocido pero que es muy útil una vez conocido; me refiero por supuesto al comando watch.Manteniendonos informados con el comando watch en Linux
Watch se encarga de mostrar en tiempo real el resultado obtenido de un comando lanzado desde la consola, haciendo que ciertos procesos de gran relevancia obtengan la atención que se merecen. Este comando se encuentra instalado por defecto en el sistema, con lo que afortunadamente no requiere de instalación o configuración alguna; simplemente se encuentre allí, a la espera de que alguien se "acuerde" de él y lo use. El uso básico de watch aplicado al comando anterior (por ejemplo) sería:
watch'ls -la /usr/src/svn_download/'
Este comando haría que cada 2 segundos se actualizase el resultado obtenido por el comando ls; dicho intervalo de tiempo puede ser modificado, pero sin poner parámetro alguno siempre constaría de dicho intervalo. Obviamente watch posee ciertos parámetros que pueden resultarnos de gran utilidad, ya sea para resaltar cierta información o para cambiar el comportamiento que tiene por defecto. Los parámetros más importantes serían:
  • -n: Especifica cada cuantos segundos repetir el comando (junto con su resultado). A menor el tiempo especificado más actualizado estaría el resultado, aunque también mayor carga de trabajo para el sistema operativo. El valor mínimo de este parámetro sería de 0,1 segundos. Tal y como he dicho antes, en caso de no especificar este parámetro se establecería un intervalo de 2 segundos.
  • -d: Gracias a este parámetro, cada vez que el resultado mostrado en pantalla se refresque (es decir, que se actualice), la consola resaltará los valores que hayan cambiado con respecto al resultado anterior, permitiéndonos apreciar los cambios con mucha mayor facilidad. 
  • -t: No es un parámetro especialmente útil... Si ejecutamos watch con normalidad veremos una cabecera en la que se mostrará el comando que se está ejecutando y el intervalo con el que se ejecuta éste. En caso de no querer ver esa información podemos ocultarla gracias a -t.
  • -h: Con este parámetro no ejecutaremos watch, pero sí que obtendremos una ayuda que nos dará cierta información sobre los parámetros disponibles.
Esto sería todo por hoy. Como podéis observar, la utilidad de este comando es innegable, pues nos permite agilizar muchos procesos al mismo tiempo que nos garantiza obtener información de los resultados de los comandos en tiempo real; en definitiva: Un comando sencillo que nos puede ser de gran ayuda.
Espero que os haya resultado útil.
Saludos.

Volver a la Portada de Logo Paperblog