logo

'crontab' en Linux con ejemplos

El crontab es una lista de comandos que desea ejecutar de forma regular, y también el nombre del comando utilizado para administrar esa lista. Crontab significa tabla cron, porque utiliza el cron del programador de trabajos para ejecutar tareas; cron lleva el nombre de cronos, la palabra griega que significa tiempo. cron es el proceso del sistema que realizará tareas automáticamente por usted de acuerdo con un cronograma establecido. La programación se llama crontab, que también es el nombre del programa utilizado para editar esa programación.

Sintaxis de Crontab de Linux

El formato Crontab de Linux está representado por la siguiente sintaxis:



MIN HOUR DOM MON DOW   CMD>

Analicemos cada campo:

Campo

Descripción



Valor permitido

MIN (Minuto)

Especifica el minuto en que se ejecutará el comando.



Va de 0 a 59.

HORA

Indica la hora del día en la que está programada la ejecución del comando.

Abarca del 0 al 23.

DOM (Día del mes)

Especifica el día del mes de la tarea.

Va del 1 al 31.

LUN (Mes)

Indica el mes durante el cual se ejecutará el comando.

Varía del 1 al 12.

DOW (día de la semana)

Especifica el día de la semana para la tarea.

Está representado por números del 0 al 6, donde tanto el 0 como el 6 corresponden al domingo.

CMD (comando)

Representa el comando o script real que se ejecutará a la hora programada.

—————–

Ejemplos de trabajos de Cron

1. Programar 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 AM 10 – Día 10 06 – 6to Mes (junio) * – Todos los días de la semana

2. Para ver las entradas de Crontab

  • Ver las entradas de Crontab del usuario que ha iniciado sesión actualmente: Para ver sus entradas de crontab, escriba crontab -l desde su cuenta de Unix.
  • Ver entradas de Root Crontab: inicie sesión como usuario root (su – root) y haga crontab -l.
  • Para ver las entradas de crontab de otros usuarios de Linux: inicie sesión en root y use -u {nombre de usuario} -l.

3. Para editar entradas de Crontab Edite las entradas de Crontab del usuario que ha iniciado sesión actualmente.

Para editar entradas de crontab, use crontab -e. De forma predeterminada, esto editará el crontab de los usuarios que han iniciado sesión actualmente.

4. Para programar un trabajo por cada minuto usando Cron.

Lo ideal sería que no tuviera la obligación de programar un trabajo cada minuto. Pero comprender este ejemplo le ayudará a comprender los demás ejemplos.

* * * * * CMD>

El * significa todas las unidades posibles, es decir, cada minuto de cada hora durante todo el año. Más que utilizar este * directamente, te resultará 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 durante 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)

El siguiente script 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 16:00 todos los días. El valor separado por coma en un campo especifica que el comando debe ejecutarse en todo el tiempo mencionado.

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

00 – 0.º minuto (hora punta) 11, 16 – 11 a. m. y 4 p. m. * – Todos los días * – Todos los meses * – Todos los días de la semana

6. Para programar un trabajo para un cierto rango de tiempo (por ejemplo, solo entre semana)

Si desea programar un trabajo para cada hora dentro de un rango 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 (hora punta) 18-09 – 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm * – Todos los días * – Cada mes * – Todos los días de la semana
  • Trabajo cron 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 los 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 (hora punta) 18-09 – 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm * – Todos los días * – Cada Mes 1-5: lunes, martes, miércoles, jueves y viernes (todos los días laborables)

7. Para programar un trabajo cron en segundo plano cada 10 minutos.

Utilice lo siguiente si desea comprobar el espacio en disco cada 10 minutos.

anaconda vs serpiente pitón
*/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 deba 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 utilizar @ seguido de una palabra clave, como reiniciar, medianoche, anualmente, cada hora. Palabras clave especiales de Cron 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 cron @yearly como se muestra a continuación. Esto ejecutará el mantenimiento anual del sistema usando 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 a principios de cada mes usando @monthly

Es tan similar al @yearly como el anterior. Pero ejecuta el comando mensualmente una vez usando la palabra clave cron @monthly. Esto ejecutará la copia de seguridad en cinta del script de shell a las 00:00 el día 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 realizará 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 cron @reboot, esto ejecutará el comando especificado una vez después de que la máquina se inicie cada vez.

@reboot CMD>