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.
watchforma parte del paqueteprocps.
Debian/Ubuntu/Mint
sudo apt-get install procpsRHEL/CentOS
sudo dnf install procps-ngFedora
sudo dnf install procps-ngopenSUSE
sudo zypper install procpsArch Linux
sudo pacman -S procps-ngFreeBSD
sudo pkg install watchmacOS
Primero, asegúrate de tener Homebrew instalado:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"Luego:
brew install watchNota: En contenedores como Docker,
watchpuede 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 -mUsa la opción -d para resaltar diferencias entre actualizaciones:
watch -d -n 1 free -mPara monitorear la copia de un archivo:
cp my_dump.tar.gz /home/captain &
watch -n 0.1 du -h /home/captain/my_dump.tar.gzO:
watch -n 0.1 ls -lh /home/captain/my_dump.tar.gzPara ver logs en tiempo real:
sudo watch tail /var/log/messagesNota: 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 zabbixPara 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; doneUso en AIX/HP-UX
while :; do ps -fu zabbix; sleep 1; clear; doneUso en Solaris
while :; do /usr/bin/ps -ef; sleep 1; clear; doneUso en macOS
watch -n 0.2 ps -fu captainEjemplo 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 ~/.bashrcEjemplos:
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.