Crontab, programando tareas.
En linux Cron es el administrador de procesos en segundo plano, se encarga de ejecutar procesos o guiones a intervalos regulares (cada minuto, cada día, cada semana y cada mes) Mediante el fichero crontab específicamos el día y la hora en la que lo harán. Como nota curiosa el nombre viene del griego Chronos, el Dios del Tiempo.
Este es un ejemplo completo de configuración:
22 11 10 12 sun,tue,wed /opt/script.sh
Se ejecutará el script.sh los Domingos, Martes y miércoles, el día 10 del mes 12 a las 11:22 H.
Aquí está el esquema de qué significa cada campo.
.---------------- minuto (0 - 59)
| .------------- hora (0 - 23)
| | .---------- día del mes (1 - 31)
| | | .------- mes (1 - 12) O jan,feb,mar,apr ... (los meses en inglés)
| | | | .---- día de la semana (0 - 6) sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * comando para ser ejecutado
El Domingo en los días de la semana puede ser 0 ó 7
Ahora bien para administrar el crontab hay varios comandos que tenemos que conocer como es costumbre.
1- Listar entradas del crontab del usuario que tenemos logueado.
nexolinux m3t4g4m3 # crontab -l
2-Editar entradas del crontab del usuario logueado
nexolinux m3t4g4m3 # crontab -e
Como detalle añadir que al hacer esto está leyendo el fichero del usuario que corresponde de la ruta /var/spool/cron/%USUARIO en donde cada uno de tener alguna tarea configurada tendrá creado su fichero ahí
3- Listar trabajos programados de un usuario
nexolinux m3t4g4m3 # crontab -e m3t4g4m3
no crontab for m3t4g4m3
4- Remover una entrada del crontab
nexolinux m3t4g4m3 # crontab -r (remueve sin preguntar)
nexolinux m3t4g4m3 # crontab -i -r (pide confirmación para remover)
5- Ficheros de configuración
/etc/cron.d
/etc/cron.daily (Ejecuta los scripts contenidos una vez al día)
/etc/cron.hourly (Ejecuta los scripts contenidos cada hora)
/etc/cron.monthly (Ejecuta los scripts contenidos una vez al mes)
/etc/cron.weekly (Ejecuta los scripts contenidos una vez por semana)
6- Cadenas especiales para programar.
@reboot (cuando arranca el sistema)
@daily (una vez al día)
@midnight ( cada día a media noche)
@weekly (una vez a la semana)
@yearly (una vez al año)
@daily (una vez al día)
7- Ejecutar varios comandos a la vez.
nexolinux m3t4g4m3 # crontab-e @daily <command1> && <command2>
Deja un comentario