GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo usar el formato de trabajo cron para programar tareas en Linux

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

Cualquiera de estos campos se puede configurar con un asterisco (*) ) , que significa "del primero al último". Por ejemplo, para ejecutar un trabajo cada hora, ingrese * en el campo de la hora.

También se permiten rangos de números. Los rangos son dos números separados por un guión (- ). El rango especificado es inclusivo. Por ejemplo, 8-11 para una entrada de "horas" especifica la ejecución a las horas 8 , 9 , 10 y 11 .

Las listas están permitidas. Una lista es un conjunto de números (o rangos) separados por comas (, ). Aquí hay algunos ejemplos:1,2,5,9 o 0-4,8-12 .

También se permiten pasos después de un asterisco , así que si quieres decir "cada dos horas", puedes usar */2 .

El demonio cron comprueba el crontab una vez por minuto. Los comandos son ejecutados por cron cuando los campos de minutos, horas y meses coinciden con la hora actual, y al menos uno de los dos campos de día (día del mes o día de la semana) coincide con el día actual.

Formato de sintaxis especial de Cron

Los trabajos cron también ofrecen algunas cadenas con formato especial, que se pueden usar en lugar de los cinco campos de fecha y hora. Básicamente, son atajos para el programa numérico equivalente especificado:

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.

Cómo usar el comando crontab

El crontab El comando crea un archivo crontab que contiene comandos e instrucciones mediante el uso de un formato de trabajo cron específico para que lo ejecute el demonio cron. Puedes usar el crontab comando con las siguientes opciones:

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 * * * *"

Por ejemplo, para editar o crear su propio archivo crontab, escriba el siguiente comando en el símbolo del sistema:

crontab -e

No es necesario reiniciar cron después de cambiar el archivo crontab. Cron examinará la hora de modificación en todos los crontabs y volverá a cargar los que hayan cambiado.

Cómo editar un archivo crontab que pertenece a otro usuario

Para editar el archivo crontab que pertenece a root u otro usuario, debe convertirse en root. Por supuesto, no necesita convertirse en root para editar su archivo crontab .

crontab -u [username] -e

Cómo eliminar un archivo crontab

La mayoría de las veces, no querrá eliminar el archivo crontab. Sin embargo, es posible que desee eliminar algunas filas del archivo crontab.

Para eliminar el archivo crontab de su usuario, ejecute el siguiente comando:

crontab -r

Ejemplos de trabajos cron

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.

Conclusión

Ahora tiene una buena comprensión de cómo usar el formato de trabajo cron para programar tareas en Linux. Utilice los ejemplos presentados en esta guía para crear y programar trabajos cron en su sistema. Cuando se combina con scripts de shell, puede automatizar tareas que normalmente son tediosas o complicadas.

Para obtener más información, las páginas man de cron y crontab aquí y aquí tienen excelente información y descripciones de cómo funciona el sistema cron.


Linux
  1. Cómo usar cron en Linux

  2. Cómo usar el comando grep de Linux

  3. Cómo usar el comando de historial en Linux

  4. Cómo uso cron en Linux

  5. Cómo usar el comando "pantalla" en Linux

Cómo usar el comando ping de Linux

Cómo usar el comando fd en el sistema Linux

Cómo usar el comando Jobs en Linux

Cómo usar el comando superior como administrador de tareas en Linux

¿Cómo usar el comando wget en Linux?

¿Cómo usar el comando xargs en Linux?

    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.