Si se encuentra ejecutando el mismo comando una y otra vez, puede que exista una mejor manera.

A veces, es necesario ejecutar repetidamente un comando o programa para monitorear varios aspectos de su sistema, como procesos en curso, uso de espacio en disco o inicios de sesión de usuarios. El comando watch de Linux le permite automatizar estas tareas sin tener que ejecutarlas manualmente una y otra vez.

Con este comando, puede monitorear las actividades del sistema en tiempo real, como inicios de sesión de usuarios, estado de la red, uso de memoria y CPU, espacio en disco, etc. Veamos cómo usar el comando watch en Linux.

¿Qué es el comando de vigilancia?

El comando watch Linux ejecuta un comando o programa específico repetidamente, a intervalos regulares, y muestra su salida en la terminal. Esto le permite observar los cambios en la salida en tiempo real. Actualiza la salida en cada intervalo, sobrescribiendo la salida anterior del comando. De forma predeterminada, el comando se repite cada dos segundos y continúa hasta que lo detenga manualmente usando Ctrl+C.

instagram viewer

Ver sintaxis del comando

La sintaxis del comando de vigilancia es:

watch options 

Hay varias opciones de línea de comando disponibles para usar con el comando de vigilancia. Si ejecuta el comando de vigilancia sin ninguna opción, ejecutará el comando especificado cada dos segundos. Por ejemplo, lo siguiente le mostrará el resultado del comando ls:

watch ls -l ~/

El resultado le mostrará los cambios en la lista del directorio si se crea, elimina o cambia de tamaño un archivo, mientras actualiza el resultado cada dos segundos.

Ejecute un comando cada X segundos usando el reloj

Puede cambiar el intervalo de actualización del comando de vigilancia. Esto significa que puede decirle al comando de vigilancia que espere x segundos antes de repetir el comando. Para cambiar el intervalo de actualización, utilice el -norte opción seguida del intervalo de tiempo en segundos.

watch -n 

Por ejemplo, para ejecutar un comando cada 5 segundos, ejecute:

watch -n 5 

Resaltar cambios entre actualizaciones

El comando watch sobrescribe su salida en cada actualización. Utilizando el -d opción, también puede resaltar los cambios entre la salida anterior y la actualizada.

watch -d

De forma predeterminada, el comando watch muestra un encabezado en la parte superior de cada salida que contiene el intervalo de actualización, el nombre del comando y la fecha y hora actuales del sistema. Puede quitar el encabezado de la salida usando el -t opción:

watch -t 

Reproducir pitidos en caso de error

Cuando un proceso de Linux termina de ejecutarse, devuelve un código de salida. Por convención, el valor es 0 en caso de éxito y distinto de cero para representar un error. El comando de vigilancia -b La opción reproduce un pitido si el comando devuelve una salida distinta de cero.

Supongamos que desea monitorear sshd.service y recibir una notificación cuando el servicio se detenga; usarías:

watch -b sudo systemctl status sshd.service

Este comando emitirá un pitido cuando se detenga el servicio. El pitido se detendrá cuando se reanude el servicio. Para probar esto, abra otra ventana de terminal y detenga el servicio. Esto emitirá pitidos constantes hasta que inicies el servicio nuevamente. Sin embargo, para utilizar esta función, debe tener el paquete de pitidos instalado en su sistema.

Salga del comando de vigilancia al cambiar la salida

También puede indicarle al comando de vigilancia que deje de ejecutarse y salga cuando cambie la salida del comando. Puedes hacer esto usando el -gramo opción. Esta opción es muy útil en escenarios en los que se esperan ciertos cambios en la salida.

Una vez que la salida cambie, el comando de vigilancia se detendrá. Puede combinar este uso con el comando echo para mostrar un mensaje en la pantalla.

Por ejemplo, considere un escenario en el que está esperando que llegue un archivo a su directorio. El siguiente comando monitoreará el directorio para el archivo especificado. Tan pronto como llegue, el comando de vigilancia dejará de ejecutarse y aparecerá el mensaje. llegó el archivo se mostrará en el terminal.

watch -g "ls -l | grep filename" && echo "file arrived"

Otro ejemplo útil es una notificación cuando un usuario específico inicia sesión en su sistema:

watch -g "who | grep username" && echo "username logged in"

Este comando monitoreará la salida del comando who que enumera los usuarios que han iniciado sesión. Una vez que el usuario inicia sesión, el comando de vigilancia se detendrá y mostrará un mensaje en el terminal.

De manera similar, puede indicarle al comando de vigilancia que detenga un servicio cuando se realicen algunos cambios en un archivo. Tenga en cuenta que cuando utilice una cadena canalizada de comandos, deberá encerrar el comando completo entre comillas.

Vea actividades en su sistema Linux

Si se encuentra realizando el mismo proceso repetidamente, considere usar el comando watch para automatizarlo. Le evita tener que escribir comandos con frecuencia para ver qué ha cambiado.

También puede utilizar el comando watch con otros comandos de Linux para monitorear los recursos y actividades del sistema y realizar un seguimiento de los cambios en archivos o directorios.