Cómo ejecutar o repetir un comando Linux cada x segundos para siempre
- 3551
- 741
- Berta Solano
Un administrador del sistema a menudo necesita ejecutar un comando repetidamente en ciertos períodos de tiempo. A menudo, tales tareas se pueden completar fácilmente con comandos cron simples. En la mayoría de los casos, esto debería funcionar, pero el período más corto que puede ejecutar el comando cron es cada 1 minuto. Lo creas o no, en muchos casos esto es demasiado lento.
Ejecutar el comando Linux cada segundoEn este tutorial, aprenderá una simple técnica de secuencia de comandos para monitorear o vigilar un comando particular en un estado de ejecución continuo de manera similar al comando superior (controle continuamente el proceso y la utilización de la memoria) por cada 3 segundos de forma predeterminada.
No nos detendremos para discutir las razones, por qué necesitaría ejecutar comandos esto a menudo. Creo que todos tienen diferentes razones para eso en sus trabajos diarios o incluso en PC y computadoras portátiles en casa.
1. Usar el comando de reloj
Mirar es un comando Linux que le permite ejecutar un comando o programa periódicamente y también muestra que sale en la pantalla. Esto significa que podrá ver la salida del programa a tiempo. Por defecto, el reloj vuelve a ejecutar el comando/programa cada 2 segundos. El intervalo se puede cambiar fácilmente para cumplir con sus requisitos.
Monitorear el uso de la memoria
"RETRAR" es extremadamente fácil de usar, para probarlo, puede encender un terminal de Linux de inmediato y escribir el siguiente comando:
# Mira gratis -m
El comando anterior verificará la memoria gratuita de su sistema y actualizará los resultados del comando gratuito cada dos segundos.
Monitorear el uso de la memoria en LinuxComo se ve según la salida anterior, tiene un encabezado, que muestra información sobre (de izquierda a derecha) intervalo de actualización, comando que se está ejecutando y la hora actual. Si desea ocultar este encabezado, puede usar el -T
opción.
La siguiente pregunta lógica es: cómo cambiar el intervalo de ejecución. Para ese propósito, puede usar el -norte
opción, que especifica el intervalo con el que se ejecutará el comando. Este intervalo se especifica en segundos. Así que digamos que quieres ejecutar tu guion.mierda
File cada 10 segundos, puede hacerlo así:
# watch -n 10 script.mierda
Nota que si ejecuta el comando como se muestra arriba, necesitará cd
al directorio (aprende los ejemplos de comando de 15 CD) donde el script se encuentra o especifique la ruta completa a ese script.
Otras opciones útiles de comando de reloj son:
-b
- crea un sonido de pitido si la salida del comando no es cero.-C
- Interpreta secuencias de color ANSI.-d
- resalta los cambios en la salida del comando.
Monitorear a los usuarios registrados, tiempo de actividad y promedio de carga
Supongamos que desea monitorear a los usuarios registrados, un tiempo de actividad del servidor y cargar la salida promedio en fase continua cada pocos segundos, luego usar el siguiente comando como se muestra:
# Mira tiempo de relojMira el promedio de carga de Linux
Para salir del comando, presione Ctrl+C
.
Aquí el 'tiempo de actividad'
El comando ejecutará y mostrará los resultados actualizados cada 2 segundos de forma predeterminada.
Monitorear el progreso del comando de copia
En Linux, mientras copia archivos de una ubicación a otro usando CP
comando, no se muestra el progreso de los datos, para ver el progreso de los datos que se copian, puede usar el mirar
comando junto con el comando du -s para verificar el uso del disco en tiempo real.
# CP Ubuntu-15.10-desktop-amd64.ISO/HOME/TECMINT/& # watch -n 0.1 du -s/home/tecmint/ubuntu -15.10-desktop-amd64.Yo asiMonitorear el progreso del comando de copia
Si cree que el proceso anterior es demasiado complicado para lograr, entonces le sugiero que busque el comando de copia anticipada, que muestra el progreso de los datos mientras copia.
2. Usar el comando del sueño
El sueño a menudo se usa para depurar los scripts de shell, pero también tiene muchos otros propósitos útiles. Por ejemplo, cuando se combina con para
o mientras
bucles, puedes obtener resultados increíbles.
Si es nuevo en las secuencias de comandos bash, puede consultar nuestra guía sobre Bash Loops aquí.
En caso de que esta sea la primera vez que escuche sobre el "dormir"
Comando, se usa para retrasar algo por un tiempo específico. En los scripts, puede usarlo para decirle a su script que ejecute el comando 1, espere 10 segundos y luego ejecute el comando 2.
Con los bucles anteriores, puede decirle a Bash que ejecute un comando, duerma para norte cantidad de segundos y luego ejecute el comando nuevamente.
A continuación puede ver ejemplos de ambos bucles:
Para ejemplo de bucle
# para i en 1 ... 10; hacer echo -n "Esta es una prueba en bucle $ i"; fecha ; dormir 5; hecho
El revestimiento anterior, ejecutará el comando Echo y mostrará la fecha actual, un total de 10 veces, con 5 segundos de sueño entre ejecuciones.
Aquí hay una salida de muestra:
Esta es una prueba en el bucle 1 el miércoles 17 de febrero 20:49:47 EET 2016 Esta es una prueba en el bucle 2 mié 17 de febrero 20:49:52 EET 2016 Esta es una prueba en el bucle 3 mié 17 de febrero 20:49:57 EET 2016 Esta es una prueba en el bucle 4 mié 17 de febrero 20:50:02 EET 2016 Esta es una prueba en el bucle 5 mié 17 de febrero 20:50:07 EET 2016 Esta es una prueba en el bucle 6 el miércoles 17 de febrero 20:50:12 EET 2016 Esta es una prueba en el bucle 7 mié 17 de febrero 20:50:17 EET 2016 Esta es una prueba en el bucle 8 mié 17 de febrero 20:50:22 EET 2016 Esta es una prueba en el bucle 9 el miércoles 17 de febrero 20:50: 27 EET 2016 Esta es una prueba en el bucle 10 mié 17 de febrero 20:50:32 EET 2016
Puedes cambiar el eco y fecha comandos con sus propios comandos o script y cambie el intervalo de sueño según sus necesidades.
Ejemplo de bucle
# mientras cierto; hacer echo -n "Esta es una prueba de bucle while"; fecha; dormir 5; hecho
Aquí está la salida de muestra:
Esta es una prueba de while loopwed 17 de febrero 20:52:32 EET 2016 Esta es una prueba de While loopwed 17 de febrero 20:52:37 EET 2016 Esta es una prueba de While Loopwed 17 de febrero 20:52:42 EET 2016 esto es esto es Una prueba de While Loopwed 17 de febrero 20:52:47 EET 2016 Esta es una prueba de While Loopwed 17 de febrero 20:52:52 EET 2016 Esta es una prueba de While Loopwed 17 de febrero 20:52:57 EET 2016
El comando anterior se ejecutará hasta que sea asesinado o interrumpido por el usuario. Puede ser útil si necesita ejecutar un comando que se ejecuta en segundo plano y no desea contar con cron.
Importante: Al usar los métodos anteriores, se recomienda encarecidamente que establezca un intervalo lo suficiente como para dar suficiente tiempo de su comando para finalizar la ejecución, antes de la próxima ejecución.
Conclusión
Las muestras en este tutorial son útiles, pero no están destinadas a reemplazar completamente la utilidad cron. Depende de usted encontrar cuál funciona mejor para usted, pero si tenemos que separar el uso de ambas técnicas, diría esto:
- Use Cron cuando necesite ejecutar comandos periódicamente incluso después de reiniciar el sistema.
- Use los métodos explicados en este tutorial para programas/scripts que están destinados a ejecutarse dentro de la sesión de usuario actual.
Como siempre, si tiene alguna pregunta o comentario, no dude en enviarlas en la sección de comentarios a continuación.
- « Cómo configurar y administrar conexiones de red utilizando la herramienta 'NMCLI'
- Cheat una línea de comando definitiva 'Cheat -sheet' para principiantes y administradores de Linux »