crontab

Ejecute un trabajo cron cada minuto

Ejecute un trabajo cron cada minuto
Si desea ejecutar un programa o script en segundo plano en Linux, el trabajo cron es muy importante. Con la ayuda de trabajos cron, puede ejecutar un programa o script en segundo plano después de un intervalo de tiempo determinado.

Echemos un vistazo a algunos de los ejemplos de la vida real de trabajos cron.

Hay muchos otros usos de trabajos cron en Linux.

En este artículo, le mostraré cómo ejecutar trabajos cron cada minuto en Linux. Usaré Debian 9 Stretch para la demostración. Pero puede usar cualquier distribución de Linux moderna de su elección. Empecemos.

Conceptos básicos de Crontab:

En Linux, no tienes que ser raíz para ejecutar trabajos cron. Puede ejecutar trabajos cron como cualquier usuario. Todos los usuarios de Linux pueden usar un crontab archivo para ejecutar su propio conjunto de trabajos cron.

De forma predeterminada, un usuario no tiene crontab archivo en Linux. Puedes crear un crontab archivo con el siguiente comando:

$ crontab -e

Si está ejecutando este comando por primera vez, se le debe pedir que elija un editor de texto de la lista. Yo escogeré nano, el predeterminado. Puedes elegir el que más te guste. Una vez que haya terminado, presione .

La crontab El archivo debe crearse (si aún no está disponible) y abrirse con su editor de texto favorito.  Ahora puede agregar sus propios trabajos cron al final de este archivo y, una vez que esté satisfecho, simplemente guárdelo y salga del editor de texto.

Sintaxis de ejecutar un comando cada minuto:

La sintaxis de crontab archivo es el siguiente:

minuto hora dayOfMonth mes dayOfWeek commandToRun

Aquí,

Para ejecutar un commandToRun comando cada minuto, debe escribirlo en el crontab archivo de la siguiente manera:

* * * * * commandToRun

Ejecución de un trabajo de crob cada minuto:

Ahora que conocemos las teorías, agreguemos un guión simple Temporizador.sh hacia crontab archivo y vea cómo administrarlo.

En el Temporizador.sh script, solo tengo las siguientes líneas de códigos. Todo lo que hace es crear un nuevo archivo / inicio / shovon / bin / timer.Iniciar sesión (si aún no existe) y le agrega la salida del comando de fecha.

Ahora agreguemos el script a nuestro crontab y déjelo correr cada minuto con la siguiente línea:

* * * * * / inicio / shovon / bin / timer.sh

Una vez que guarde el crontab archivo y salir del editor de texto, el nuevo crontab el archivo debe estar instalado.

Después de transcurrido un minuto, se crea un nuevo archivo Temporizador.Iniciar sesión se crea en el directorio deseado como puede ver en la sección marcada de la captura de pantalla a continuación.

Desde el Temporizador.Iniciar sesión archivo de registro, es obvio que el script Temporizador.sh corre cada minuto.

Detectar errores de los trabajos cron:

Para detectar errores de un trabajo cron, puede enviar los errores a un error.Iniciar sesión archivo y salidas normales a acceso.Iniciar sesión archivo por ejemplo. Por supuesto, puedes nombrar los archivos como quieras.

Para demostrar esto, modifiqué mi script Temporizador.sh un poco. Ahora los errores se envían a error.Iniciar sesión archivo en el / inicio / shovon / bin directorio y las salidas se envían a acceso.Iniciar sesión en el / inicio / shovon / bin directorio.

Al principio el / tmp / i_must_be_here el archivo no existe, por lo que aparece el error en el error.Iniciar sesión archivo como puede ver.

La acceso.Iniciar sesión el archivo está vacío en este momento.

Ahora voy a crear el archivo / tmp / i_must_be_here

Y como puede ver, la salida está en el acceso.Iniciar sesión archivar ahora.

Si lo desea, puede redirigir la salida y los errores en el mismo archivo de la siguiente manera:

Como puede ver, las salidas STDIN y STDERR se envían al fuera.Iniciar sesión expediente.

Asegurarse de que el último trabajo terminó de ejecutarse antes de volver a ejecutar el trabajo:

Para que esto funcione, puede crear un archivo temporal justo después de que comience el trabajo y eliminarlo justo antes de que finalice. Luego puede verificar si el archivo temporal existe antes de comenzar el trabajo. Si es así, puede salir del trabajo y ejecutarlo solo cuando el archivo temporal no esté disponible.

Este sencillo script hace precisamente eso.

Como puede ver, el Temporizador.pid se crea el archivo.

Leer el acceso.Iniciar sesión El archivo demuestra que el trabajo cron no se ejecuta antes de que termine de ejecutarse el trabajo cron anterior. Como puede ver, se ejecutó a las 01:32:01 y la próxima vez debería haberse ejecutado a las 01:33:01, pero no fue así. En cambio, se ejecutó a las 01:35:01, aproximadamente 3 minutos más tarde.

Organización de las salidas de trabajos cron para una depuración sencilla:

Puede formatear las salidas muy bien para que su trabajo cron sea más fácil de depurar.

Un ejemplo de cómo se puede hacer se da en el siguiente guión.

Como puede ver, las salidas, los errores y los mensajes de éxito están muy bien impresos en el archivo de registro.

Puede hacer cosas increíbles con trabajos cron y scripts de shell. Demostré algunas de las ideas aquí. Pero el cielo es tu limite. Siéntete libre de experimentar con cualquier idea que tengas. Gracias por leer este artículo.

Tutorial de Shadow of the Tomb Raider para Linux
Shadow of the Tomb Raider es la duodécima incorporación a la serie Tomb Raider, una franquicia de juegos de acción y aventuras creada por Eidos Montre...
Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...