Saltar al contenido

‘crontab’ en Linux con ejemplos

septiembre 24, 2021
gfg 200x200 min

los crontab es una lista de comandos que desea ejecutar en un horario regular, y también el nombre del comando usado para administrar esa lista. Crontab significa «tabla cron», porque utiliza el programador de trabajos cron para ejecutar tareas; cron en sí lleva el nombre de «chronos», la palabra griega para tiempo.cron es el proceso del sistema que realizará tareas automáticamente de acuerdo con un horario establecido. El horario se llama crontab, que también es el nombre del programa utilizado para editar ese horario.

Formato Crontab de Linux

MIN HOUR DOM MON DOW CMD

Campos de Crontab y rangos permitidos (sintaxis de Crontab de Linux)

Field    Description    Allowed Value
MIN      Minute field    0 to 59
HOUR     Hour field      0 to 23
DOM      Day of Month    1-31
MON      Month field     1-12
DOW      Day Of Week     0-6
CMD      Command         Any command to be executed.

Ejemplos de trabajos de Cron
1. Programación de un trabajo para un tiempo específico

El uso básico de cron es ejecutar un trabajo en un tiempo específico como se muestra a continuación. Esto ejecutará el script de shell de copia de seguridad completa (copia de seguridad completa) el 10 de junio a las 08:30 a. M.

El campo de hora utiliza el formato de 24 horas. Entonces, para las 8 a.m. use 8, y para las 8 p.m. use 20.

30 08 10 06 * /home/maverick/full-backup

30 – minuto 30
08 – 08 a. M.
10 – 10mo día
06 – 6to mes (junio)
* – Cada día de la semana

2.Para ver las entradas de Crontab

  • Ver las entradas de Crontab del usuario que ha iniciado sesión: Para ver las entradas de su crontab, escriba crontab -l desde su cuenta de Unix.
    cron1 1
  • Ver las entradas de Root Crontab: Inicie sesión como usuario root (su – root) y ejecute crontab -l.

    cron2

  • Para ver las entradas crontab de otros usuarios de Linux: Inicie sesión en root y use -u {nombre de usuario} -l.
    cron3

3.Para editar las entradas de Crontab
Editar las entradas de Crontab del usuario que ha iniciado sesión actual. Para editar las entradas de un crontab, utilice crontab -e. De forma predeterminada, esto editará el crontab de los usuarios que han iniciado sesión.
cron4
4. Para programar un trabajo por cada minuto usando Cron.
Idealmente, es posible que no tenga el requisito de programar un trabajo cada minuto. Pero comprender este ejemplo lo ayudará a comprender los otros ejemplos.

* * * * * CMD

El * significa todas las unidades posibles, es decir, cada minuto de cada hora a lo largo del año. Más que usar esto * directamente, lo encontrará muy útil en los siguientes casos.

Cuando especifica * / 5 en el campo de minutos significa cada 5 minutos.
Cuando especifica 0-10 / 2 en el campo de minutos, significa cada 2 minutos en los primeros 10 minutos.
Por tanto, la convención anterior se puede utilizar para los otros 4 campos.
5.Para programar un trabajo para más de una vez (por ejemplo, dos veces al día)

La siguiente secuencia de comandos realiza una copia de seguridad incremental dos veces al día todos los días.

Este ejemplo ejecuta el script de shell de copia de seguridad incremental especificado (copia de seguridad incremental) a las 11:00 y a las 16:00 todos los días. El valor separado por comas en un campo especifica que el comando debe ejecutarse en todo el tiempo mencionado.

00 11, 16 * * * /home/maverick/bin/incremental-backup

00 – minuto 0 (parte superior de la hora)
11, 16 – 11 a. M. Y 4 p. M.
* – Todos los días
* – Cada mes
* – Cada día de la semana

6.Para programar un trabajo para un cierto rango de tiempo (por ejemplo, solo los días de semana)

Si desea que se programe un trabajo para cada hora dentro de un intervalo de tiempo específico, utilice lo siguiente.

  • Cron Job todos los días durante el horario laboral:
    Este ejemplo verifica el estado de la base de datos todos los días (incluidos los fines de semana) durante el horario laboral de 9 a. M. A 6 p. M.
    00 09-18 * * * /home/maverick/bin/check-db-status
    

    00 – minuto 0 (parte superior de la hora)
    09-18 – 9 a. M., 10 a. M., 11 a. M., 12 a. M., 1 p. M., 2 p. M., 3 p. M., 4 p. M., 5 p. M., 6 p. M.
    * – Todos los días
    * – Cada mes
    * – Cada día de la semana

  • Cron Job todos los días de la semana durante el horario laboral:
    Este ejemplo verifica el estado de la base de datos todos los días de la semana (es decir, excluyendo sábados y domingos) durante el horario laboral de 9 a. M. A 6 p. M.
    00 09-18 * * 1-5 /home/maverick/bin/check-db-status
    

    00 – minuto 0 (parte superior de la hora)
    09-18 – 9 a. M., 10 a. M., 11 a. M., 12 a. M., 1 p. M., 2 p. M., 3 p. M., 4 p. M., 5 p. M., 6 p. M.
    * – Todos los días
    * – Cada mes
    1-5: lunes, martes, miércoles, jueves y viernes (todos los días de la semana)

7. Para programar un trabajo de Cron en segundo plano cada 10 minutos.
Utilice lo siguiente, si desea comprobar el espacio en disco cada 10 minutos.

*/10 * * * * /home/maverick/check-disk-space

Ejecuta el comando especificado check-disk-space cada 10 minutos durante todo el año. Pero es posible que tenga el requisito de ejecutar el comando solo durante ciertas horas o viceversa. Los ejemplos anteriores muestran cómo hacer esas cosas. En lugar de especificar valores en los 5 campos, podemos especificarlo usando una sola palabra clave como se menciona a continuación.

Hay casos especiales en los que, en lugar de los 5 campos anteriores, puede usar @ seguido de una palabra clave, como reiniciar, medianoche, anual, cada hora.

Cron palabras clave especiales y su significado

Keyword    Equivalent
@yearly    0 0 1 1 *
@daily     0 0 * * *
@hourly    0 * * * *
@reboot    Run at startup.

8.Para programar un trabajo para el primer minuto de cada año usando @yearly
Si desea que un trabajo se ejecute en el primer minuto de cada año, puede usar la palabra clave @yearly cron como se muestra a continuación. Esto ejecutará el mantenimiento anual del sistema utilizando el script de shell de mantenimiento anual a las 00:00 del 1 de enero para todos los años.

@yearly /home/maverick/bin/annual-maintenance

9.Para programar un trabajo Cron al comienzo de cada mes usando @monthly
Es tan similar al @yearly como arriba. Pero ejecuta el comando mensualmente una vez usando la palabra clave @monthly cron. Esto ejecutará la copia de seguridad en cinta del script de shell a las 00:00 el 1 de cada mes.

@monthly /home/maverick/bin/tape-backup

10.Para programar un trabajo en segundo plano todos los días usando @daily
Usando la palabra clave @daily cron, esto hará una limpieza diaria del archivo de registro usando el script de shell cleanup-logs a las 00:00 todos los días.

@daily /home/maverick/bin/cleanup-logs "day started"

11.Para ejecutar un comando de Linux después de cada reinicio usando @reboot
Usando la palabra clave @reboot cron, esto ejecutará el comando especificado una vez después de que la máquina se inicie cada vez.

@reboot CMD

Referencia: Página de manual de Linux para cron
Este artículo es una contribución de Kishlay Verma. Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando contrib.geeksforgeeks.org o envíe su artículo por correo electrónico a [email protected] Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema discutido anteriormente.

¡Atención lector! No dejes de aprender ahora. Obtenga todos los conceptos importantes de la Teoría de la CS para las entrevistas SDE con el Curso de Teoría de CS a un precio asequible para los estudiantes y prepárese para la industria.

close