jueves, 14 de julio de 2016

El Crontab

Los Cron son administradores de procesos que se ejecutan en segundo plano cada cierto tiempo según sean configuremos; son ampliamente utilizados para hacer backup programados; como usuarios podemos automatizar tareas con comandos BASH (por ejemplo para ejecutar un script como un .sh); de esta forma podemos tener una administración completa de un sistema; no sólo es posible emplear .sh para utilizar un Cron, también se puede emplear cualquier tipo de comando BASH (por ejemplo para ejecutar un archivo PHP); todo depende de lo que se desee hacer:

Cron es un demonio (servicio), y por lo tanto solo es iniciado una vez, generalmente con el mismo arranque del sistema.

El Crontab

Cron es el administrador de procesos, Cron lee en un archivo de texto plano llamado Crontab en donde se guardan una lista de comandos creados por el usuario ha ser ejecutados; la sintaxis para crear una de estas tareas programadas en muy sencilla:

* * * * * comando ha ser ejecutado
- - - - -
| | | | |
| | | | ----- Día de la semana (0 - 7)
| | | ------- Mes (1 - 12)
| | --------- Día del mes (1 - 31)
| ----------- Hora (0 - 23)
------------- Minuto (0 - 59).

Formato básico de una tarea en el Crontab

Básicamente consta de dos mitades:

El tiempo en el cual se ejecutará la tarea del Crontab; el mismo esta compuesto por operadores y resulta de lo más versátil:

  • Cada minuto: En intervalos de entre 0 a 59.
  • Cada hora: En intervalos de entre 0 a 23.
  • Cada día: En intervalos de entre 0 a 31.
  • Cada mes: En intervalos de entre 0 a 12 (0==12 y 12 == Diciembre).
  • Cada día de la semana: En intervalos de entre 0 a 7 (0==7 y 7 == domingo).



Ejemplos de tareas en el Crontab

Si deseamos ejecutar una tarea del Crontab cada 5 minutos:
*/5 * * * * /home/fedora/sh/backup.sh

Si deseamos ejecutar una tarea del Crontab a las 10 de la mañana:
0 10 * * * /home/fedora/sh/backup.sh

Si deseamos ejecutar una tarea del Crontab a las 2:15 de la tarde todos los días:
15 14 * * * /home/fedora/sh/backup.sh

Si deseamos ejecutar una tarea del Crontab a las 2:15 de la tarde todos los días exceptuando los fines de semana (de lunes a viernes):
15 14 * * 1-5 /home/fedora/sh/backup.sh

Si deseamos ejecutar una tarea del Crontab a las 2:15 de la tarde todos los domingos:
15 14 * * 0 /home/fedora/sh/backup.sh
O
15 14 * * 7 /home/fedora/sh/backup.sh
O
15 14 * * sun /home/fedora/sh/backup.sh

Si deseamos ejecutar el 21 de octubre a las 7:21:
21 7 21 10 * /home/fedora/sh/backup.sh

Si deseamos hacer un backup todos los días a las ocho de la noche y guardar un registro (log) con los posibles errores al ejecutar el Crontab:
0 20 * * * /home/fedora/sh/backup.sh >>  /home/fedora/sh_backup/cron_ruas.log 2>&1

Luego de realizar los cambios se restaura el servicio 

/etc/init.d/cron restart

No hay comentarios:

Publicar un comentario en la entrada