GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo ejecutar un comando de Linux cada X segundos para siempre

¿Alguna vez ha estado en una situación en la que tuvo que ejecutar un comando específico de Linux cada pocos segundos repetidamente? Bueno, si aún no lo sabe, este tutorial le enseñará cómo hacerlo. Por supuesto, puede hacer esto usando un script de shell o trabajos cron . También puede repetir un comando de Linux en un intervalo particular sin tener que ejecutarlo manualmente cada vez. Aquí es donde Watch El comando es útil. Este comando se puede usar para ejecutar el comando dado repetidamente y monitorear la salida. Para poner esto en palabras simples, podemos usar el comando Watch para ejecutar un comando de Linux cada X segundos para siempre y seguirá mostrando el resultado en la consola hasta que lo detengamos manualmente presionando CTRL+C o elimine el proceso o reinicie el sistema a la fuerza. De forma predeterminada, el comando dado se ejecutará cada 2 segundos, o puede definir el intervalo de tiempo de su elección.

Ejecute un comando de Linux cada X segundos para siempre con Watch Command

La sintaxis de watch el comando es:

$ watch [options] command

A continuación, le doy algunos ejemplos para enseñarle dónde puede usar watch comando para ejecutar un comando específico de Linux repetidamente.

Ejemplo 1:

Digamos que desea ejecutar el uptime Comando cada 2 segundos para monitorear el tiempo de actividad de su sistema. Para hacerlo, simplemente ejecute:

$ watch uptime

Salida de muestra:

Every 2.0s: uptime                                     sk Wed Feb  9 20:14:46 2018

 20:15:46 up  2:38,  1 users,  load average: 0.41, 0.35, 0.46

Aquí,

  • Cada 2,0 s: tiempo de actividad:el uptime el comando se ejecutará cada 2 segundos y mostrará el resultado.
  • sk - El usuario conectado actualmente
  • miércoles 9 de febrero 20:14:46 2018 - La fecha y hora actual cuando ejecutamos el comando.

Esto seguirá ejecutándose hasta que lo finalices manualmente. Para salir del comando, presione CTRL+C .

También puede guardar la salida del uptime comando en un archivo. Para hacerlo, ejecute:

$ watch `uptime` > uptime.txt

O

$ watch `uptime` > uptime.doc

Esto puede ser útil cuando desea enviar el tiempo de actividad de su sistema a un soporte técnico para obtener ayuda.

Ejemplo 2:

Como mencioné antes, watch El comando ejecuta un programa cada 2 segundos por defecto. Podemos cambiarlo a un intervalo particular, por ejemplo 5 segundos, usando -n parámetro.

Vamos a mostrar el uso del espacio en disco del sistema de archivos cada 5 segundos.

$ watch -n 5 df -h

Salida de muestra:

Every 5.0s: df -h sk: Wed May 9 20:19:09 2018

Filesystem Size Used Avail Use% Mounted on
dev 3.9G 0 3.9G 0% /dev
run 3.9G 1.1M 3.9G 1% /run
/dev/sda2 457G 357G 77G 83% /
tmpfs 3.9G 32M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 36K 3.9G 1% /tmp
/dev/loop0 83M 83M 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93M 55M 32M 64% /boot
tmpfs 789M 28K 789M 1% /run/user/1000

Para verificar si este comando realmente funciona, cree o elimine cualquier archivo/carpeta. Notará que el espacio libre ha cambiado en la salida después de crear o eliminar archivos/carpetas.

Ejemplo 3:

Para ver el contenido de un cambio de directorio, ejecute:

$ watch -d ls -l

Aquí, el -d o --differences marca resaltará las diferencias entre actualizaciones sucesivas.

Salida de muestra:

total 3857440
-rw------- 1 sk users 1921843200 Apr 25 22:47 bionic-desktop-amd64.iso
-rw------- 1 sk users 1921843200 Apr 25 03:02 bionic-desktop-amd64.iso.zs-old
drwxr-xr-x 2 sk users 12288 May 8 18:45 Desktop
drwxr-xr-x 2 sk users 4096 Apr 20 16:54 Documents
drwxr-xr-x 11 sk users 4096 May 9 19:56 Downloads
drwxr-xr-x 2 sk users 4096 Jan 7 2017 Music
drwxr-xr-x 5 sk users 12288 Mar 23 17:34 Pictures
drwxr-xr-x 2 sk users 4096 May 11 2016 Public

Además, puede mostrar el contenido de un cambio de directorio que pertenece a un usuario en particular (por ejemplo, sk ).

$ watch -d 'ls -l | fgrep sk'

Esto puede ser útil en un sistema multiusuario.

Ejemplo 4:

Para mostrar los detalles de la memoria, ejecute:

$ watch -d free -m

Ejemplo 5:

Para mostrar la salida de du Comando cada 10 segundos, puedes usar:

$ watch -n 10 du -h

Salida de muestra:

Every 10.0s: du -h                                                                                                                              sk: Wed May 9 20:26:43 2018
17M     ./.disruptive innovations sarl/bluegriffon/q87d9o6v.default/extensions
16K     ./.dooble/Dooble
4.0K    ./.dooble/Histories
176K    ./.dooble
4.0K    ./.PlayOnLinux/wine/mono
13M     ./.PlayOnLinux/wine/gecko
4.0K    ./.PlayOnLinux/wine/linux-amd64
652K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine/fonts
872K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine

Esto monitorea el uso del disco cada 10 segundos hasta que salga manualmente.

Para obtener más detalles, le recomiendo que consulte las páginas man.

$ man watch

Ejecutar un comando de Linux cada X segundos para siempre con ciclo while

También puedes hacer esto con la ayuda de While bucle.

Para repetir un comando cada 2 segundos para siempre, ejecuta:

$ while sleep 2 ; do uptime ; done

Salida de muestra:

21:10:21 up 10:12,  1 user,  load average: 0.83, 0.71, 0.59
21:10:23 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:25 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:27 up 10:12,  1 user,  load average: 0.70, 0.68, 0.58
[...]

Conclusión

Ahora sabe cómo ejecutar un comando cada X segundos usando Watch dominio. Generalmente, Watch El comando se usa para monitorear el uso del disco y el uso de la memoria. No confunda este comando con otras herramientas de monitoreo. Este comando tiene la intención de ejecutar un comando cada segundo en particular para siempre, hasta que lo detengas manualmente.

Lectura relacionada:

  • Cómo repetir un comando hasta que tenga éxito en Linux

Linux
  1. Cómo ejecutar o repetir un comando de Linux cada X segundos para siempre

  2. Cómo usar el comando Su en Linux

  3. ¿Repetir un comando de Unix cada X segundos para siempre?

  4. Mire:repita los comandos de Unix o Shell-Scripts cada N segundos

  5. Cómo registrar cada comando de shell en Linux

Cómo ejecutar un comando durante un tiempo específico en Linux

Cómo ejecutar un comando periódicamente en Linux usando Watch

Cómo ejecutar múltiples comandos de Linux en un solo comando

Cómo ejecutar varios comandos de Linux a la vez en la terminal de Linux

Usando el comando Watch en Linux

¿Cómo puedo ver la alimentación de mis cámaras web en Linux?