¿A qué hora corren los crones diarios, semanales y mensuales en CentOS 6.x?

Dificultad: Fácil
Tiempo de Lectura: 2 minutos

En la mayoría de las modernas distribuciones de Linux el sistema hace uso de crones, del mismo tipo que el usuario puede manejar. El cron es un daemon (un servicio) que sirve para ejecutar comandos determinados en momentos determinados, por ejemplo se puede usar para correr automáticamente X tarea todos los días a una hora en específico.

Anacron funciona de forma similar, aunque tiene algunas pequeñas variaciones. Al contrario de cron, anacron no asume que el sistema ha estado activo permanentemente, lo cual hace que sea más utilizado en equipos que no están encendidos las 24 horas del día, aunque aún así juega un rol importante en muchos servidores. Es capaz de controlar tareas diarias, semanales y mensuales, y podemos encontrar los crones diarios, semanales y mensuales en las siguientes carpetas respectivamente:

/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

Y ahora viene la pregunta del título: ¿a qué hora corren estos crones? En las modernas distros RHEL / CentOS 6.x es anacrontab quien nos brinda la respuesta:

cat /etc/anacrontab

Ese es el archivo en cuestión y tendrá un formato similar al siguiente:

# /etc/anacrontab: configuration file for anacron
 
# See anacron(8) and anacrontab(5) for details.
 
SHELL=/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
# the maximal random delay added to the base delay of the jobs
# RANDOM_DELAY=45
# the jobs will be started during the following hours only
START_HOURS_RANGE=3-22
 
#period in days   delay in minutes   job-identifier   command
1	5	cron.daily		nice run-parts /etc/cron.daily
7	25	cron.weekly		nice run-parts /etc/cron.weekly
@monthly 45	cron.monthly		nice run-parts /etc/cron.monthly

Aquí hay un par de cosas que necesitamos entender:

  • START_HOURS_RANGE -> esta variable indica el período de tiempo en el cual las tareas se pueden iniciar. De 03AM a 10PM en este caso.
  • RANDOM_DELAY -> en este ejemplo no está activa, pero sirve para añadir minutos adicionales aleatorios para comenzar a correr las tareas. En este caso se añadirían entre 0 y 45 minutos. Es complementada por la anterior y por «delay in minutes».
  • period in days -> está presente para indicarnos, en días, la frecuencia de las tareas.
  • delay in minutes -> el número indica los minutos que deben pasar desde el comienzo del START_HOURS_RANGE para que se corran los crones.

En otras palabras, con esta configuración los crones comenzarán a correr a estas horas:

Crones diarios -> 3:05AM (comienzo del período de tareas + 5 minutos)
Crones semanales -> 3:25AM
Crones mensuales -> 3:45AM

En versiones viejas de CentOS, como las 5.x o las 4.x, los horarios de los crones se pueden verificar en el crontab:

cat /etc/crontab

Si tienes alguna duda sobre el uso de anacrontab o si algo no ha quedado claro, por favor déjanos un comentario.

¿Te resultó útil el artículo? Compártelo con tus colegas: