watch
es una herramienta potente de línea de comandos que ejecuta un comando a intervalos regulares y muestra los resultados en pantalla completa, similar al comando top. Es útil para monitorear procesos, logs o cambios en el sistema en tiempo real.
Instalación de watch
En muchas distribuciones Linux, watch
está preinstalado. Si no lo está, puedes instalarlo según tu sistema.
watch
forma parte del paqueteprocps
.
Debian/Ubuntu/Mint
sudo apt-get install procps
RHEL/CentOS
sudo dnf install procps-ng
Fedora
sudo dnf install procps-ng
openSUSE
sudo zypper install procps
Arch Linux
sudo pacman -S procps-ng
FreeBSD
sudo pkg install watch
macOS
Primero, asegúrate de tener Homebrew instalado:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Luego:
brew install watch
Nota: En contenedores como Docker,
watch
puede no estar disponible. Usa el gestor de paquetes de la imagen base para instalarlo.
Uso de watch
La sintaxis de watch
varía ligeramente entre sistemas Unix/Linux. A continuación, se detallan ejemplos prácticos.
Uso en Linux
Por defecto, watch
actualiza la salida cada 2 segundos. Para ejecutarlo cada segundo:
watch -n 1 free -m
Usa la opción -d
para resaltar diferencias entre actualizaciones:
watch -d -n 1 free -m
Para monitorear la copia de un archivo:
cp my_dump.tar.gz /home/captain &
watch -n 0.1 du -h /home/captain/my_dump.tar.gz
O:
watch -n 0.1 ls -lh /home/captain/my_dump.tar.gz
Para ver logs en tiempo real:
sudo watch tail /var/log/messages
Nota: Comandos que acceden a logs o procesos del sistema pueden requerir permisos de superusuario (sudo
).
Con ps
, puedes monitorear servicios, como procesos de Zabbix:
watch -n 0.2 ps -fu zabbix
Para procesos específicos (zabbix_proxy
y zabbix_agentd
):
watch -tn 0.2 'ps -f -C zabbix_proxy -C zabbix_agentd'
Para procesos de sincronización de historial (Zabbix):
watch -tn 0.2 'ps -fC zabbix_server | grep history'
Para reducir la salida de ps
, muestra solo los comandos:
watch -tn 0.2 'ps -o cmd -C zabbix_server -C zabbix_proxy -C zabbix_agentd'
Advertencia: Intervalos muy cortos (e.g., -n 0.1
) o comandos pesados pueden consumir recursos. Úsalos con precaución.
Uso en FreeBSD
Si watch
no está instalado, usa:
while :; do ps x; sleep 0.2; clear; done
Uso en AIX/HP-UX
while :; do ps -fu zabbix; sleep 1; clear; done
Uso en Solaris
while :; do /usr/bin/ps -ef; sleep 1; clear; done
Uso en macOS
watch -n 0.2 ps -fu captain
Ejemplo avanzado
Para filtrar salidas dinámicas:
watch -n 1 'df -h | grep /dev/sda1'
Alternativa: Crear un alias
Si prefieres no usar watch
, crea un alias en ~/.bashrc
:
echo "alias myWatch='while :; do clear; eval \$2; sleep \$1; done'" >> ~/.bashrc
source ~/.bashrc
Ejemplos:
myWatch 5 "ls -lF $HOME"
myWatch 1 "ps uax | grep captain"
Conclusión
`watch` es una herramienta versátil para monitorear comandos en tiempo real. Consulta la [página man] para más detalles.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.