¿Qué es anacron y en qué se diferencia de cron?
Anacron se utiliza para ejecutar comandos periódicamente, con una frecuencia especificada en días. A diferencia de cron, no asume que la máquina está funcionando continuamente. Por lo tanto, se puede usar en máquinas que no funcionan las 24 horas del día para controlar trabajos regulares como trabajos diarios, semanales y mensuales. Anacron intenta ejecutar los trabajos programados tan cerca como lo permita el tiempo de actividad del sistema.
archivo de configuración de anacron
/etc/anacrontab es el archivo de configuración de anacron. A continuación se muestra un archivo anacron de muestra sin editar:
# cat /etc/anacrontab # /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í:
1. período en días :especifica la frecuencia de ejecución de un trabajo en días. Esta variable se puede representar mediante un número entero o una macro (@daily, @weekly, @monthly), donde @daily indica el mismo valor que el número entero 1, @weekly el mismo que 7 y @monthly especifica que se ejecuta el trabajo una vez al mes, independientemente de la duración del mes.
2. retraso en minutos :especifica la cantidad de minutos que Anacron espera, si es necesario, antes de ejecutar un trabajo. Esta variable está representada por un número entero donde 0 significa que no hay demora.
3. identificador de trabajo :especifica un nombre único de un trabajo que se utiliza en los archivos de registro.
4. comando :especifica el comando a ejecutar. El comando puede ser un comando como ps -ef>> /tmp/processes o un comando para ejecutar un script personalizado.
Las 3 líneas al final de los archivos de configuración son trabajos cron definidos por el sistema.
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
El resto de las variables se explican con un ejemplo a continuación.
Ejemplo de configuración de anacron
Veamos un ejemplo de configuración de anacron. Estamos creando un trabajo de anacron para ejecutar un script llamado "daily_job.sh" diariamente con un retraso de 35 minutos después de que se inicie el sistema.
# cat /etc/anacrontab RANDOM_DELAY=30 START_HOURS_RANGE=10-18 1 35 daily_job sh /var/tmp/daily_job.sh
Si el sistema se está ejecutando, el trabajo se ejecutará según START_HOURS_RANGE que se define en el archivo /etc/anacrontab. La variable START_HOURS_RANGE define el intervalo de horas en las que se permite ejecutar el trabajo programadob. En nuestro caso son las 10 A.M. a las 6 p. m. (10-18)
# grep -i START_HOURS_RANGE /etc/anacrontab START_HOURS_RANGE=10-18
El RETRASO ALEATORIO La variable denota el número máximo de minutos que se agregarán a la variable de retraso en minutos que se especifica para cada trabajo. Por lo tanto, un RANDOM_DELAY establecido en 30 agregaría, aleatoriamente, entre 0 y 30 minutos al retraso en minutos para cada trabajo en esa anacrontab en particular. Cuando se establece en 0, no se agrega ningún retraso aleatorio.
# grep -i RANDOM_DELAY /etc/anacrontab RANDOM_DELAY=30