Crontab.¶
-
Se utiliza para automatizar tareas a ciertas horas del día.
-
El demonio cron es el que se encarga del correcto funcionamiento de crontab.
-
Se ejecuta en segundo plano.
-
Cada usuario, incluido root, tiene su propio fichero de crontab, cuyas tareas se ejecutan aunque su usuario no se encuentre logueado en ese momento.
-
El fichero de opciones se almacena en /var/spool/cron/crontabs, pero solo se debe modificar con la herramienta crontab.
-
Los errores se registran en /var/log/syslog.
Tip
Configuración.¶
crontab [-u user] [-l | -r | -e] [-i]
| Opción | |
|---|---|
–e |
Edita el fichero de crontab. |
l |
Lista las tareas programadas. |
-r |
Elimina las tareas programadas de un usuario |
-i |
Pregunta si estamos seguros de eliminar las tareas programadas. |
SUDO
- En el propio documento de crontab tenéis una explicación de su uso (fijarse en la última línea):
| Opción | |
|---|---|
m |
Minuto en el que se tiene que ejecutar la tarea (0-59). |
h |
Hora en el que se tiene que ejecutar la tarea (0-23). |
dom |
Día del mes en el que se tiene que ejecutar la tarea (1-31). |
mon |
Mes en el que se tiene que ejecutar la tarea (1-12). |
dow |
Día de la semana en el que se tiene que ejecutar la tarea (0-7). |
command |
Tarea programada. |
-
Caracteres especiales:
💥 *: Representa cualquier cosa, por ejemplo cualquier día o mes.
💥 1,3,5: Se puede intercalar con la coma varios días, meses, etc...
💥 1-12: Se puede usar para incluir todos los números entre 1 y 12.
-
Palabras reservadas:
💥 @yearly: ejecutar cada año.
💥 @monthly: ejecutar una vez al mes.
💥 @weekly: una vez a la semana.
💥 @daily/@midnight: una vez al día.
💥 @hourly: cada hora.
💥 @reboot: Al arrancar la máquina.
Ejemplos.¶
A las 00:00 el día 1 de Enero, caiga cuando caiga (lunes – domingo)
0 0 1 1 * cd /home/salva; bash miscript.sh
Todos los días a las 08:30
30 8 * * * cd /home/salva; bash miscript.sh
El día 1 de cada mes, cada hora en punto.
0 * 1 * * cd /home/salva; bash miscript.sh
Todos los lunes a las 09:00.
0 9 * * 1 cd /home/salva; bash miscript.sh
Ejecutar cada hora.
@hourly cd /bin/ejecutar; ./script.sh
Ejecutar con cada reinicio.
@reboot cd /bin/ejecutar; ./script.sh
Permisos.
El crontab ejecuta las tareas con los permisos que tiene el usuario que lo haya configurado, por lo que los scripts programados deben ser ejecutables y debemos tener permisos.