Este artículo explicará las tareas de programación y la ejecución de scripts a intervalos regulares utilizando trabajos cron.
Que es cron?
Cron es un programa de programación de tareas que se ejecuta en segundo plano como un proceso. Se puede usar para ejecutar periódicamente ciertos trabajos que están programados utilizando su conjunto predefinido de reglas. Cron viene preinstalado en la mayoría de las distribuciones de Linux o disponible en los repositorios que se instalarán manualmente.
Presets Cron
Cron en Ubuntu viene con un conjunto de programadores predefinidos. Puede verificarlos ejecutando el comando a continuación:
$ ls /etc /cron.*
Por lo general, estas carpetas son “/etc/cron.por hora ","/etc/cron.diariamente ","/etc/cron.mensual "y"/etc/cron.semanalmente".
Simplemente coloque sus scripts deseados en una de estas carpetas para ejecutar tareas automatizadas por hora, diariamente, mensual o semanal.
Tenga en cuenta que CRON usa shell "/bin/sh" de forma predeterminada. Si desea usar "/bin/bash" como shell en scripts cron, debe usar "!#/bin/bash "hashbang en la parte superior del archivo de script o defina Shell como variable" shell =/bin/bash "en la primera línea en un script de bash programado. Anular la variable de entorno "shell" también funciona para el editor de crontab explicada a continuación.
No todas las variables de entorno del sistema pueden estar expuestas a los trabajos cron. Por lo tanto, generalmente es una buena idea definir manualmente variables de entorno importantes en un script programado por Cron.
Crontabista
Crontab le permite definir sus propias tareas programadas. Puede usarlo para configurar horarios cron diferentes de los cuatro presets de cron estándar explicados anteriormente.
Para establecer una tarea programada en CRONTAB, primero inicie el editor CRONTAB usando el comando a continuación:
$ crontab -e
Ahora al final del archivo, puede agregar una entrada en el siguiente formato:
minuto hora día mes mes de semana/pleno/ruta/a/script.mierdaDónde:
La entrada de Crontab a continuación tomará una captura de pantalla de su escritorio y la almacenará en su directorio de origen una vez a las 15:13 horas el 2 de marzo, más todos los martes de marzo a las 15:13 horas.
13 15 2 3 2 SCROTPara enumerar todas las entradas de Crontab, use el comando a continuación:
$ crontab -l
Más ejemplos
Las tareas de Cron se pueden explicar mejor a través de ejemplos, por lo que a continuación se muestran algunos ejemplos que tomarán capturas de pantalla de su escritorio periódicamente y los almacenarán en la carpeta de inicio.
Además de las cinco variables de programación, Cron también usa algunas cadenas especiales para programar trabajos. Estas cadenas son:
La entrada de Crontab a continuación tomará una captura de pantalla una vez en cada reinicio:
@reboot scrotPuede reemplazar "@reboot" con cualquier otra cadena especial mencionada anteriormente.
El uso de un asterisco o comodín en lugar de cualquiera de las cinco variables repetirá el trabajo en todas las nuevas instancias de esa variable. La siguiente entrada tomará una captura de pantalla cada minuto:
* * * * * SCROTCada hora:
0 * * * * SCROTTodos los días a las 18:00 horas:
0 18 * * * SCROTCada mes del 6 a las 18:00 horas:
0 18 6 * * SCROTUse "/" para ejecutar un script a un intervalo periódico fijo de 30 minutos (se ejecuta cada 30 minutos):
*/30 * * * * * SCROTPuede usar variables separadas por coma para definir la ejecución repetida del script a intervalos regulares. El siguiente ejemplo tomará una captura de pantalla de su escritorio cada 1, cuarto y quinto minuto de una nueva hora.
1,4,5 * * * * SCROTVerificación de entradas de Crontab
Definir las entradas de Crontab puede ser complicado, pero depurarlas o verificar si funcionan en las marcas de tiempo correctas es aún más complicado. Una opción es usar una máquina virtual y registrar marcas de tiempo de un script que se ejecuta periódicamente en un trabajo cron al incluir algo como el comando "Fecha" y redirigir la salida a un archivo de texto. Sin embargo, una mejor solución es utilizar uno de los numerosos servicios de pruebas de trabajos de Cron en línea disponibles en la web. Recomiendo hacer que el sitio web de Tester Cron esté disponible aquí.
Conclusión
Ejecutar trabajos cron es una excelente manera de automatizar tareas repetidas, especialmente en los servidores. La herramienta es extremadamente potente y personalizable. Sin embargo, es importante determinar que la definición de su planificador funciona correctamente, especialmente si hay tareas de misión crítica.