Cómo configurar los trabajos cron en Linux

Cómo configurar los trabajos cron en Linux
La automatización y programación de tareas repetidas en escritorios y servidores mejora la productividad y reduce la intervención manual y el monitoreo. Numerosas herramientas de este tipo están disponibles para Linux y una de las más utilizadas entre ellas es "Cron".

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.mierda

Dónde:

  • minuto: cualquier valor en el rango 0 a 59
  • Hora: cualquier valor en el rango de 0 a 23, 0 siendo la medianoche
  • Día: cualquier valor en el rango 1 a 31
  • Mes: cualquier valor en el rango 1 a 12
  • Día de la semana: cualquier valor en el rango 0 a 6, 0 siendo el domingo

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 SCROT

Para 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:

  • @Hourly: El trabajo se ejecuta cada hora
  • @Daily / @midnight: el trabajo se ejecuta todos los días
  • @Weekly: Job se ejecuta una vez por semana
  • @Monthly: Job se ejecuta una vez al mes
  • @Yearly / @anally: Job se ejecuta una vez al año
  • @reboot: el trabajo se ejecuta una vez cada reinicio / inicio de sesión

La entrada de Crontab a continuación tomará una captura de pantalla una vez en cada reinicio:

@reboot scrot

Puede 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:

* * * * * SCROT

Cada hora:

0 * * * * SCROT

Todos los días a las 18:00 horas:

0 18 * * * SCROT

Cada mes del 6 a las 18:00 horas:

0 18 6 * * SCROT

Use "/" para ejecutar un script a un intervalo periódico fijo de 30 minutos (se ejecuta cada 30 minutos):

*/30 * * * * * SCROT

Puede 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 * * * * SCROT

Verificació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.