Crontab en Linux explicado con ejemplos

Crontab es el equivalente en Linux del Programador de tareas de Windows. Puede ayudarlo a configurar una tarea para que se ejecute automáticamente a intervalos regulares. Es posible que algunos de ustedes ya estén pensando en varios casos de uso para esta funcionalidad. Es más útil para los administradores de sistemas que pueden usarlo para automatizar trabajos de mantenimiento de rutina y otras tareas.

Para ayudarlo a comprender todo el potencial de Crontab y todo lo que puede hacer con él, repasaremos un puñado de ejemplos prácticos de cómo usar Crontab para programar tareas en su sistema Linux. Pero primero, obtengamos una comprensión básica de la sintaxis crontab.

Sintaxis de Crontab: cómo escribir entradas de Crontab

Al escribir una entrada crontab, debe trabajar con seis campos. Los primeros cinco campos 1-5 se utilizan para especificar la fecha y la hora en que desea que se ejecute la tarea, mientras que el sexto campo es para definir la tarea en cuestión.

A continuación, se muestra un aspecto básico de cómo debería verse una entrada de Crontab:

[minute] [hour] [DayOfMonth] [MonthOfYear] [DayOfWeek] [the script you want to execute]

Los valores aceptables para cada uno de estos campos son los siguientes:

  • Minuto: El valor puede estar entre 0 y 59.
  • Hora: El valor puede estar entre 0-23.
  • Dia del mes: El valor puede estar entre 1 y 31. Para los meses que tienen menos de 31 días (digamos febrero con 28 días), los días adicionales se ignorarán.
  • MonthOfYear: El valor puede estar entre 1 y 12. Aquí el 1 representa enero y el 12 representa diciembre. El valor también puede ser las tres primeras letras del mes: para enero, puede escribir Jan, y para junio, puede escribir Jun.
  • Día de la semana: El valor puede estar entre 0 y 7. Aquí tanto el 0 como el 7 representan el domingo. Además, el valor puede ser las primeras tres letras del día; para el lunes, puede escribir Mon, y para el viernes, puede escribir Vie.

Ahora que tiene un conocimiento básico de cómo definir los valores temporales, repasemos rápidamente la configuración de múltiples valores y rangos. Para ello, puede utilizar los siguientes caracteres especiales:

  • Asterisco
  • : esto significa que el valor puede coincidir con cualquier cosa. Coma (,): use esto para definir múltiples valores como 2,4,6 oMar, jue, sáb
  • . Guión (-): esto se puede usar para definir un rango como 2-6 oMartes a sábado

. Aquí se tomarán todos los números del 2 al 6 y todos los días de martes a sábado. También puede definir varios rangos utilizando comas (,) y guiones (-) juntos. Por ejemplo, si desea definir todos los meses de enero a abril y de octubre a diciembre, puede escribirene-abr, oct-dic

.

¿Cómo crear o agregar una nueva entrada de Crontab?

$ crontab -e

Entonces, ahora que tiene una idea básica de cómo escribir entradas de Crontab, veamos cómo puede agregarle una tarea. Bueno, primero debes ingresar el siguiente comando en la terminal:

Esto abrirá un archivo Crontab en el editor donde puede agregar o editar un trabajo.
Uso de Crontab

Uso de Crontab

$ crontab -u username -e

De forma predeterminada, creará las entradas crontab para el usuario actual. Sin embargo, si desea crear una entrada crontab para un usuario diferente, debe usar este comando en su lugar: los nombre de usuario

es solo un marcador de posición donde debe ingresar el nombre de usuario real para el que desea crear una nueva tarea crontab.

¿Cómo ver todas las entradas de Crontab?

Con el tiempo, es posible que haya creado un montón de entradas crontab en su sistema. Como tal, es necesario revisar estas entradas para ver cuáles aún necesita y cuáles puede eliminar.

$ crontab -l

Para enumerar todas las entradas crontab para el usuario actual, puede usar el siguiente comando:

$ crontab -u username -l

Sin embargo, para ver las entradas crontab de un usuario diferente, necesitará usar este comando en su lugar:

Índice
  • Eso cubre prácticamente toda la sintaxis básica y los comandos que necesita usar para Crontab. Hablemos de algunos ejemplos prácticos de cómo se puede utilizar Crontab en Linux.
  • Eso cubre prácticamente toda la sintaxis básica y los comandos que necesita usar para Crontab. Hablemos de algunos ejemplos prácticos de cómo se puede utilizar Crontab en Linux.

    15 ejemplos prácticos del uso de Crontab en Linux

    Aquí repasaremos algunos ejemplos prácticos de entradas crontab que serán útiles en circunstancias del mundo real. Le mostraremos el comando crontab que necesita escribir y lo que hace para que desarrolle una comprensión más profunda.

    1. Programe un Cron para que se ejecute a diario a una hora determinada El siguiente comando ejecutará la tarea /scripts/script.sh, todos los días

    0 1 * * * /scripts/script.sh

    a la 1 am El asterisco en el tercer campo denota que se ejecutará todos los días del mes, los cuarto campo denota que se ejecutará todos los meses del año y el quinto campo denota que lo hará

    ejecutar todos los días de la semana.

    2. Programe un Cron para que se ejecute a diario

    0 0 * * * /scripts/script.sh

    El siguiente comando ejecutará la tarea /scripts/script.sh, todos los días a la medianoche.

    @daily /scripts/script.sh

    o puede usar el comando:

    Aquí, @daily timestamp sustituye a “0 0 * * *”.

    3. Programe un Cron para que se ejecute dos veces al día El siguiente comando ejecutará la tarea /scripts/script.sh,

    0 1,13 * * * /scripts/script.sh

    todos los días a la 1 a. m. y a la 1 p. m.

    Observe que el segundo campo contiene dos entradas separadas por una coma para definir los dos puntos de tiempo separados.

    4. Programe un Cron para que se ejecute cada minuto El siguiente comando ejecutará la tarea /scripts/script.sh,

    * * * * * /scripts/script.sh

    cada minuto, repetidamente.

    Como puede ver, los cinco campos que se utilizan para especificar el día y la hora están marcados con un asterisco.

    . 5. Ejecutar cada x minutos El siguiente comando ejecutará la tarea

    * /20 * * * /scripts/script.sh

    /scripts/script.sh, cada 20 minutos. Aquí hemos usado / 20 en el campo de hora, lo que significa que la tarea se ejecutará cada 20 minutos. Si hubieras usado

    / 10

    aquí, significaría que la tarea se ejecutaría cada 10 minutos. 6. Ejecutar cada x horas El siguiente comando ejecutará la tarea/scripts/script.sh,

    0 * /6 * * /scripts/script.sh

    cada 6 horas a la hora 0 minutos . Hemos usado

    / 6

    en el campo de día, que le indica que ejecute el comando cada 6 horas. Dado que el campo de los minutos es 0, se ejecutará exactamente cuando el minutero esté en 12 (o 0).

    * * * * * /scripts/script.sh
    * * * * * sleep 30; /scripts/script.sh

    7. Programe un Cron para que se ejecute cada 10 segundos

    No es posible ejecutar un comando cada 10 segundos utilizando los parámetros de tiempo. Sin embargo, esto se puede administrar configurando el mismo Cron dos veces mientras se incluye un comando de suspensión. 8. Ejecutar cada hora El siguiente comando ejecutará la tarea/scripts/script.sh,

    0 * * * * /scripts/script.sh

    cada hora

    @hourly /scripts/script.sh

    .

    Como antes, puede usar el comando alternativo: 9. Automatice una tarea mensualmente El siguiente comando ejecutará la tarea/scripts/script.sh,

    0 0 1 * * /scripts/script.sh

    cada mes

    @monthly /scripts/script.sh

    .

    o puede usar el comando: 10. Ejecutar en un mes seleccionado El siguiente comando ejecutará la tarea/scripts/script.sh, solo en mayo

    * * * may * /scripts/script.sh

    .

    0 0 1 may * /scripts/script.sh

    Sin embargo, se ejecutará cada minuto o cada día de ese mes.

    Si desea que la tarea se ejecute todos los meses de mayo, pero solo el 1 de mayo a las 12 a. M., Utilice este comando en su lugar:

    0 0 * * sun [$(date +%d) -le 01] && /scripts/script.sh

    11. Programe un Cron para que se ejecute el primer lunes de cada mes

    Este es complicado. Al usar solo los parámetros de tiempo, no puede crear un Cron que se ejecute solo el primer lunes de cada mes. Sin embargo, puede agregar una condición en el campo de comando que lo ayudará a hacerlo. 12. Hágalo funcionar semanalmente El siguiente comando ejecutará la tarea

    0 0 * * mon /scripts/script.sh

    /scripts/script.sh,

    @weekly /scripts/script.sh

    cada semana los lunes a medianoche.

    o puede usar el comando alternativo como lo usamos antes: 13. Anual El siguiente comando ejecutará la tarea

    0 0 1 1 * /scripts/script.sh

    /scripts/script.sh

    @yearly /scripts/script.sh

    anualmente el primero de enero a la medianoche.

    También hay un comando alternativo para esto: 14. Ejecute varias tareas una vez al día a una hora determinada El siguiente comando ejecutará estas dos tareas /scripts/script1.sh y/scripts/script2.sh,

    0 0 * * * /scripts/script1.sh; /scripts/script2.sh

    todos los días a la medianoche

    .

    Usando el punto y coma (;), podemos definir dos tareas en lugar de una. Puede utilizar el procedimiento para definir tres, cuatro,… hasta n número de funciones. 15. Programe un Cron para que se ejecute después de reiniciar el sistema A veces, puede ser necesario ejecutar una tarea o un conjunto de tareas cada vez que se reinicia. Aquí es donde “@reboot” se vuelve útil. El siguiente comando ejecutará la tarea

    @reboot /scripts/script.sh

    /scripts/script.sh

    en el inicio del sistema.

    Terminando

    Así que este fue nuestro análisis en profundidad de Crontab en Linux y cómo puede ayudarlo a automatizar y programar tareas repetitivas. Esperamos que la lectura le haya resultado útil y que le haya ayudado a comprender mejor Crontab y todo lo que puede hacer con él. ¿En qué uso exclusivo pensó o lo aplicó a su sistema con Crontab?

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir