Comando watch, ideal para observar recursos del sistema de forma periódica

By | August 29, 2015

Un pequeño tip que puede resultar útil especialmente para depurar en tiempo real o hacer un seguimiento de determinadas variables. El comando watch nos permite pasarle como argumento un segundo comando secundario y observar cambios cada X segundos (por defecto 2). De su página man:

watch runs command repeatedly, displaying its output and errors (the first screenfull). This allows you to watch the program output change over time. By default, the program is run every 2 seconds. By default, watch will run until interrupted

Su sintaxis es bastante sencilla:

watch [opciones] comando-secundario [opciones-comando-secundario]

Por ejemplo, para observar el estado de la memoria con free, podemos refrescar con watch cada décima de segundo con:

watch -n 0.1 free -m

Combinado con el programa sensors que nos indica las temperaturas nuestra CPU (entre otras) vemos los cambios cada segundo:

watch -n 1 sensors

Lo mismo podemos hacer para observar conexiones de red con netstat:

watch -n 1 netstat -netaup

Un comando sencillo pero a la vez versátil, que puede resultar especialmente útil para observar la disponibilidad de recursos de red, CPU, memoria, nº de ficheros abiertos, etc… de nuestro sistema por ejemplo en pruebas de carga de aplicaciones o actividad de red relacionada con servidores web, etc…