Echemos un vistazo a algunos de los ejemplos de la vida real de trabajos de 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 moderna de Linux de su elección. Empecemos.
En Linux, no tienes que ser raíz Para ejecutar trabajos cron. Puede ejecutar trabajos cron como cualquier usuario. Cada usuario en Linux puede usar un crontabista Archivo para ejecutar su propio conjunto de trabajos cron.
Por defecto, un usuario no tiene un crontabista Archivo en Linux. Puedes crear un crontabista 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. Voy a elegir nano, el predeterminado. Puedes elegir el que te guste. Una vez que haya terminado, presione .
El crontabista El archivo debe crearse (si no está disponible ya) y abrir con su editor de texto favorito. Ahora puede agregar sus propios trabajos cron al final de este archivo y una vez que esté contento, simplemente guárdelo y salga del editor de texto.
Sintaxis de ejecutar un comando cada minuto:
La sintaxis de crontabista El archivo es el siguiente:
Hora de minuto de día de Month Mes Dayofweek Commandtorun
Aquí,
Para ejecutar un comandante comandar cada minuto, debes escribirlo en el crontabista Archivo de la siguiente manera:
* * * * * CommandTorun
Ejecutar un trabajo de cob cada minuto:
Ahora que conocemos las teorías, agregemos un script simple Temporizador.mierda hacia crontabista archivo y ver cómo administrarlo.
En el Temporizador.mierda Script, solo tengo las siguientes líneas de códigos. Todo lo que hace es crear un nuevo archivo /home/shovon/bin/temporizador.registro (si aún no existe) y agrega la salida del comando de fecha.
Ahora agregemos el script a nuestro crontabista Y déjelo correr cada minuto con la siguiente línea:
* * * * * */home/shovon/bin/temporizador.mierda
Una vez que guardes el crontabista Archivo y salga del editor de texto, el nuevo crontabista El archivo debe instalarse.
Después de pasar un minuto, un nuevo archivo es Temporizador.registro 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.registro archivo de registro, es obvio que el script Temporizador.mierda corre cada minuto.
Capturar errores de los trabajos cron:
Para detectar errores de un trabajo cron, puede enviar los errores a un error.registro Archivo y salidas normales a acceso.registro archivo por ejemplo. Por supuesto que puede nombrar los archivos que desee.
Para demostrar esto, modifiqué mi guión Temporizador.mierda un poco. Ahora los errores se envían a error.registro archivo en el /Home/Shovon/Bin directorio y las salidas se envían a acceso.registro en el /Home/Shovon/Bin directorio.
Al principio el /tmp/i_must_be_here el archivo no existe, por lo que recibo el error en el error.registro Archivo como puede ver.
El acceso.registro 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.registro archivo 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 afuera.registro archivo.
Asegurarse de que el último trabajo terminara de funcionar antes de ejecutar el trabajo nuevamente:
Para que esto funcione, puede crear un archivo temporal justo después de que comience el trabajo y eliminarlo justo antes de que termine. Luego puede verificar si el archivo temporal existe antes de comenzar el trabajo. Si lo hace, puede salir del trabajo y ejecutar el trabajo solo cuando el archivo temporal no está disponible.
Este script simple hace exactamente eso.
Como puedes ver, el Temporizador.pid Se crea el archivo.
Leer el acceso.registro El archivo demuestra que el trabajo de Cron no se ejecuta antes de que el trabajo de Cron anterior termine de funcionar. Como puede ver, se ejecutó a las 01:32:01 y la próxima vez debería funcionar a las 01:33:01, pero no lo hizo. En cambio, se ejecutó a las 01:35:01, unos 3 minutos después.
Organización de salidas de trabajo cron para una fácil depuración:
Puede formatear las salidas bien para hacer que su trabajo cron sea más fácil de depurar.
Un ejemplo de cómo se puede hacer se da en el siguiente script.
Como puede ver, las salidas, errores y mensajes de éxito están bien impresos en el archivo de registro.
Puedes hacer cosas increíbles con trabajos cron y guiones de shell. Demostré algunas de las ideas aquí. Pero el cielo es tu límite. No dude en experimentar con cualquier idea que tenga. Gracias por leer este artículo.