Introducción
El demonio Cron es una utilidad integrada de Linux que ejecuta procesos en su sistema a una hora programada. Cron lee el crontab (tablas cron) para comandos y scripts predefinidos.
Al usar una sintaxis específica, puede configurar un trabajo cron para programar scripts u otros comandos para que se ejecuten automáticamente.
Esta guía le muestra cómo configurar un trabajo cron en Linux, con ejemplos.
Requisitos previos
- Un sistema que ejecuta Linux
- Acceso a una línea de comando/ventana de terminal (Ctrl –Alternativo –T o Ctrl –Alternativo –F2 )
- Una cuenta de usuario con root o sudo privilegios
Sintaxis básica de Crontab
Cron lee los archivos de configuración para obtener una lista de comandos para ejecutar. El daemon usa una sintaxis específica para interpretar las líneas en el crontab tablas de configuración.
Para poder configurar un trabajo cron, debemos comprender los elementos básicos que componen esta sintaxis. La forma estándar de una línea crontab es la siguiente:
a b c d e /directory/command output
Entonces, las partes de un cron
comando son:
1. Los primeros cinco campos a b c d e
especifique la hora/fecha y la recurrencia del trabajo.
2. En la segunda sección, el /directory/command
especifica la ubicación y el script que desea ejecutar.
3. El segmento final output
es opcional. Define cómo el sistema notifica al usuario de la finalización del trabajo.
1. Formato de tiempo de trabajo cron
Los primeros cinco campos del comando representan números que definen cuándo y con qué frecuencia se ejecuta el comando. Un espacio separa cada posición, que representa un valor específico.
La siguiente tabla resume los valores posibles para los campos y la sintaxis de ejemplo:
Campo | Valores posibles | Sintaxis | Descripción |
[a] – Minuto | 0 – 59 | 7 * * * * | El trabajo cron se inicia cada vez que el reloj del sistema muestra 7 en la posición de los minutos. |
[b] – Hora | 0 – 23 | 0 7 * * * | El trabajo cron se ejecuta cada vez que el reloj del sistema muestra las 7 a. m. (7 p. m. se codificaría como 19). |
[c] – Día | 0 – 31 | 0 0 7 * * | El día del mes es 7, lo que significa que el trabajo se ejecuta cada 7 días del mes. |
[d] – 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. |
[e] – Día de la semana | 0 =domingo y 7 =domingo | 0 0 * * 7 | 7 en la posición actual significa que el trabajo solo se ejecutaría los domingos. |
2. Comando a Ejecutar
La siguiente sección especifica el comando a ejecutar. Representa el directorio exacto y el nombre de archivo de la secuencia de comandos o los comandos que desea que cron complete. Por ejemplo:
/root/backup.sh
En nuestro ejemplo, el comando busca en el directorio raíz del sistema y ejecuta backup.sh texto. Puede especificar cualquier script o comando que desee.
3. Salida (Opcional)
Por defecto, cron
envía un correo electrónico al propietario del archivo crontab cuando se ejecuta. Esta es una forma conveniente de realizar un seguimiento de las tareas. Tenga en cuenta que las tareas regulares o menores pueden llenar su bandeja de entrada rápidamente.
Como esta es una función opcional, puede evitar ese escenario al deshabilitar el correo electrónico de salida. Para desactivar la salida de correo electrónico, agregue la siguiente cadena, >/dev/null 2>&1
, después de los campos de tiempo y comando.
* * * * * directory/command >/dev/null 2>&1
4. Uso de operadores (opcional)
Para mayor eficiencia, la sintaxis cron también usa operadores. Los operadores son caracteres especiales que realizan operaciones en los valores proporcionados en el campo cron.
- Un asterisco (*) representa todos los valores. Utilice este operador para mantener las tareas en ejecución durante todos los meses o todos los días de la semana.
- Una coma (,) especifica valores individuales separados.
- Un guión (–) indica un rango de valores.
- Una barra diagonal (/) se utiliza para dividir un valor en pasos. (*/2 sería cualquier otro valor, */3 sería cada tercio, */10 sería cada décimo, etc.)
Configuración de un trabajo cron
Para configurar un trabajo cron, abra crontab con un editor de texto preferido e ingrese la sintaxis del comando que desea ejecutar.
¿Cómo editar el archivo crontab?
Para abrir el archivo de configuración crontab para el usuario actual, ingrese el siguiente comando en la ventana de su terminal:
crontab –e
Puede agregar cualquier cantidad de tareas programadas, una por línea.
Una vez que haya terminado de agregar tareas, guarde el archivo y salir El demonio cron leerá y ejecutará las instrucciones proporcionadas.
Recuerde, no es necesario reiniciar Cron para aplicar los cambios.
Editar crontab para un usuario diferente
Para editar el crontab para otro usuario, ingrese el siguiente comando:
crontab –u other_username –e
Ejemplos de trabajos cron
Al especificar trabajos, utilice el asterisco para especificar todos los valores. Poner un valor en uno de los campos solo ejecuta el comando en ese valor. Por ejemplo:
* 2 0 * 4 /root/backup.sh
Aunque está configurado para ejecutarse a las 2 a. m., solo se ejecuta cuando el primer día del mes (0) cae en miércoles (4). Si cambia a lo siguiente:
* 2 0 * * /root/backup.sh
El comando se ejecuta el primero de cada mes a las 2 am. La siguiente tabla proporciona algunos comandos básicos usando /root/backup.sh archivo de nuestros ejemplos anteriores.
Trabajo de Cron | Comando |
Ejecutar trabajo cron cada minuto | * * * * * /root/backup.sh |
Ejecutar Cron Job cada 30 minutos | 30 * * * * /root/backup.sh |
Ejecutar Cron Job cada hora | 0 * * * */root/backup.sh |
Ejecutar Cron Job todos los días a medianoche | 0 0 * * * /root/backup.sh |
Ejecutar Cron Job a las 2 am todos los días | 0 2 * * * /root/backup.sh |
Ejecutar Cron Job cada 1 del mes | 0 0 1 * * /root/backup.sh |
Ejecutar Cron Job cada 15 del mes | 0 0 15 * * /root/backup.sh |
Ejecutar Cron Job el 1 de diciembre: Medianoche | 0 0 0 12 * /root/backup.sh |
Ejecutar Cron Job el sábado a medianoche | 0 0 * * 6 /root/backup.sh |
Uso de caracteres especiales
Puede usar la barra oblicua para dividir una cadena de tiempo en pasos. Para ejecutar una copia de seguridad cada 15 minutos:
*/15 * * * *
El *
significa todos los valores, y el /15
cuenta y repite cada 15 minutos.
Utilice el carácter de guión para especificar un rango. Para ejecutar el código todos los días de la semana a las 4 am:
0 4 * * 1-5 /root/backup.sh
En este caso, 1-5
especifica de lunes a viernes.
Use una coma para especificar instancias individuales en las que se debe ejecutar el código:
0 4 * * 2,4 /root/backup.sh
Esto ejecutaría el código a las 4 am los martes y jueves.
Algunos comodines se pueden combinar. Haga que el comando se ejecute cada dos días a los 37 minutos después de la hora:
37 1-23/2 * * * /root/backup.sh
1-23
especifica el rango de horas, /2
establece el intervalo cada dos horas.
Lista de trabajos cron existentes
Puede enumerar todos los trabajos cron en su sistema sin abrir el archivo de configuración crontab. Escriba el siguiente comando en una ventana de terminal:
crontab –l