Cron es un demonio de programación que utiliza un formato específico para ejecutar trabajos. Aquí se explica cómo usarlo en Linux para la ejecución automática de tareas.
Cron es una de las utilidades más útiles que puedes encontrar y usar en cualquier sistema operativo Linux o Unix. El uso del cron es una forma popular de ejecutar periódicamente tareas como comandos o scripts de shell. Estas tareas periódicas también se conocen como Cron Jobs y están programadas para ejecutarse en un momento específico.
Por ejemplo, puede configurar un trabajo cron para automatizar tareas repetitivas como hacer una copia de seguridad de una base de datos o datos, actualizar el sistema con los últimos parches de seguridad, enviar correos electrónicos, etc.
Cron lleva el nombre de la palabra griega "Chronos", que se usa para el tiempo. Esta guía proporciona una descripción general de cómo programar trabajos con crontab y cómo usar el formato de sintaxis especial de cron para ejecutarlos.
¿Qué es el archivo crontab?
Sobre todo, el archivo crontab es un archivo de texto simple que contiene una lista de comandos destinados a ejecutarse en momentos específicos. Se edita usando el crontab
dominio. Los comandos en el archivo crontab (y sus tiempos de ejecución) son verificados por el demonio cron, que los ejecuta en el fondo del sistema.
Cada línea de un archivo crontab está "activa" o "inactiva". Una línea "activa" es una configuración de entorno o una entrada de comando cron. Una línea "inactiva" es todo lo que se ignora, incluidos los comentarios.
Se ignoran las líneas en blanco, los espacios iniciales y los tabuladores. Líneas cuyo primer carácter que no sea un espacio es un signo de libra (#
) se interpretan como comentarios y se ignoran.
Tenga en cuenta que no se permiten comentarios en la misma línea que los comandos cron porque se interpretarán como parte del comando. Por la misma razón, no se permiten comentarios en la misma línea que la configuración de variables de entorno.
Entradas de formato de trabajo cron
Cada entrada en un archivo crontab consta de seis campos, especificando en el siguiente orden:
minute hour day month weekday command
Campo | Valores posibles | Sintaxis | Descripción |
---|---|---|---|
Minuto | 0 – 59 | 11 * * * * | El trabajo cron se inicia cada vez que el reloj del sistema muestra las 11 en la posición de los minutos. |
Hora | 0 – 23 | 0 1 * * * | El trabajo cron se ejecuta cada vez que el reloj del sistema muestra la 1 a. m. (1 p. m. se codificaría como 13). |
Día | 0 – 31 | 0 0 19 * | El día del mes es 19, lo que significa que el trabajo se ejecuta cada 19 días del mes. |
Mes | 0 =ninguno y 12 =diciembre | 0 0 0 7 * | El mes numérico es 7, lo que determina que el trabajo se ejecuta solo en julio. |
Día de la semana | 0 =domingo y 7 =domingo | 0 0 * * 1 | 1 en la posición actual significa que el trabajo solo se ejecutará los lunes. |
Comando | Especial | La secuencia completa de comandos a ejecutar. Se aceptan comandos, ejecutables (como secuencias de comandos) o combinaciones. |
Cadena | Significado |
---|---|
@reboot | Ejecuta el comando especificado una vez, al inicio . |
@anualmente, @anualmente | Ambos ejecutan la tarea especificada cada año a las 00:00 horas del 1 de enero. Esto es equivalente a especificar "0 0 1 1 *" en el archivo crontab. |
@mensual | Ejecuta el trabajo una vez al mes , el día 1, a las 00:00 horas. En la sintaxis cron estándar, esto es equivalente a “0 0 1 * *” |
@semanalmente | Ejecuta el trabajo una vez a la semana a las 00:00 del domingo. En la sintaxis cron estándar, esto es equivalente a "0 0 * * 0" |
@diario, @medianoche | Ambos ejecutan el cronjob todos los días a las 12:00 Esto es equivalente a especificar “0 0 * * *” en el archivo crontab. |
@por hora | Ejecuta el trabajo en la parte superior de cada hora . En la sintaxis cron estándar, esto es equivalente a "0 * * * *" |
Comando | Descripción |
---|---|
crontab -e | Editar su archivo crontab o cree uno si aún no existe. |
crontab -l | Pantalla su archivo crontab. |
crontab -r | Eliminar su archivo crontab. |
crontab -u usuario | Utilizada junto con otras opciones, esta opción le permite modificar o ver el archivo crontab del usuario. Solo los administradores pueden usar esta opción. |
Comando | Trabajo de Cron |
---|---|
* * * * * /root/script.sh | Ejecutar Cron Job cada minuto. |
0 * * * * /raíz/secuencia de comandos .sh | Ejecutar Cron Job cada hora. |
0 0 * * * /raíz/secuencia de comandos .sh | Ejecutar Cron Job todos los días a la medianoche. |
0 2 * * * /raíz/secuencia de comandos .sh | Ejecutar Cron Job a las 2 AM todos los días. |
0 0 15 * * /raíz/secuencia de comandos .sh | Ejecute Cron Job cada día 15 del mes a la medianoche. |
0 0 0 12 * /raíz/secuencia de comandos .sh | Ejecute Cron Job el 1 de diciembre a la medianoche. |
0 0 * * 6 /raíz/secuencia de comandos .sh | Ejecute Cron Job el sábado a la medianoche. |
0 15 * * 1-5 /root/script.sh | Ejecute Cron Job a las 3 p. m. todos los días de lunes a viernes. |
*/5 * * * * /root/script.sh | Ejecutar Cron Job cada 5 minutos. |
0 8-16 * * * /root/script.sh | Ejecute Cron Job todos los días, cada hora, en punto, de 8:00 a. m. a 4:00 p. m. |
0 4 * * 2,4 /root/script.sh | Ejecute Cron Job a las 4 a. m. los martes y jueves. |
@reboot /root/script.sh | Ejecutar Cron Job cuando se inicia el sistema. |