GNU/Linux >> Tutoriales Linux >  >> Linux

Cron Vs Anacron:Cómo configurar Anacron en Linux (con un ejemplo)

Anacron es el cron para equipos de escritorio y portátiles.

Anacron no espera que el sistema funcione las 24 horas del día, los 7 días de la semana como un servidor.

Cuando desee que un trabajo en segundo plano se ejecute automáticamente en una máquina que no funciona las 24 horas del día, los 7 días de la semana, debe usar anacron.

Por ejemplo, si tiene una secuencia de comandos de copia de seguridad programada todos los días a las 23:00 como una tarea cron regular y si su computadora portátil no está encendida a las 11:00 p. m., su tarea de copia de seguridad no se ejecutará.

Sin embargo, si tiene el mismo trabajo programado en anacron, puede estar seguro de que se ejecutará una vez que la computadora portátil vuelva a funcionar.

Formato Anacrontab

Al igual que cron tiene /etc/crontab, anacron tiene /etc/anacrontab.

El archivo /etc/anacrontab tiene los trabajos de anacron mencionados en el siguiente formato.

period   delay   job-identifier   command

El campo 1 es Período de recurrencia: Este es un valor numérico que especifica el número de días.

  • 1 – diario
  • 7 – semanal
  • 30 – mensual
  • N:puede ser cualquier valor numérico. N indica el número de días

Nota:También puede usar '@monthly' para un trabajo que debe ejecutarse mensualmente.

El campo 2 es Demora: Esto indica el retraso en minutos. es decir, X cantidad de minutos que anacron debe esperar antes de ejecutar el trabajo después de que se inicie la máquina.

El campo 3 es el identificador de trabajo: Es el nombre del archivo de marca de tiempo del trabajo. Debe ser único para cada trabajo. Estará disponible como un archivo en el directorio /var/spool/anacron. Este archivo contendrá una sola línea que indica la última vez que se ejecutó este trabajo.

# ls -1 /var/spool/anacron/
test.daily
cron.daily
cron.monthly
cron.weekly

# cat /var/spool/anacron/test.daily
20110507

El campo 4 es el comando: Comando o script de shell que debe ejecutarse.

Al igual que los scripts de shell, los comentarios dentro del archivo anacrontab comienzan con #

Nota: Para el formato de archivo /etc/crontab, consulte nuestro artículo Linux Crontab:15 impresionantes ejemplos de trabajo de Cron.

Ejemplo de Anacron

El siguiente ejemplo ejecuta el script /home/sathiya/backup.sh una vez cada 7 días.

El día en que se supone que debe ejecutarse el trabajo de backup.sh, si el sistema está inactivo por algún motivo, anacron ejecutará el script de backup.sh 15 minutos después de que el sistema vuelva a funcionar (sin tener que esperar otros 7 días).

# cat /etc/anacrontab
7       15      test.daily      /bin/sh /home/sathiya/backup.sh

START_HOURS_RANGE y RANDOM_DELAY

El ejemplo anterior indica que el script backup.sh debe ejecutarse todos los días, con un retraso de 15 minutos. es decir, cuando se inició la computadora portátil, se ejecutó solo después de 15 minutos.

¿Qué sucede cuando la computadora portátil o de escritorio no se apagó? ¿Cuándo se ejecuta el trabajo? Esto lo especifica la variable de entorno START_HOURS_RANGE en el archivo /etc/anacrontab.

De forma predeterminada, esto se establece en 3-22 en el archivo. Esto indica el intervalo de tiempo de 3 a. m. a 10 p. m.

# grep START /etc/anacrontab
START_HOURS_RANGE=3-22

Además del retraso definido por el usuario especificado en el segundo campo del archivo /etc/anacrontab, anacron también agrega aleatoriamente una cantidad x de minutos. La x está definida por la variable RANDOM_DELAY en el archivo /etc/anacrontab.

De forma predeterminada, se establece en 45 en el archivo. Esto significa que anacron agregará x minutos (elegidos aleatoriamente entre 0 y 45) y agregará esto al retraso definido por el usuario.

# grep RANDOM /etc/anacrontab
RANDOM_DELAY=45

Cron contra Anacron

Cron y anacron tienen sus propias ventajas y desventajas. Dependiendo de su requerimiento, use uno de ellos.

Cron Anacron
La granularidad mínima es minuto (es decir, los trabajos se pueden programar para que se ejecuten cada minuto) La granularidad mínima es solo en días
Cron job puede ser programado por cualquier usuario normal (si no está restringido por un superusuario) Anacron solo puede ser utilizado por un superusuario (pero existen soluciones alternativas para que pueda ser utilizado por un usuario normal)
Cron espera que el sistema esté funcionando las 24 horas del día, los 7 días de la semana. Si se programa un trabajo y el sistema está inactivo durante ese tiempo, el trabajo no se ejecuta. Anacron no espera que el sistema esté funcionando las 24 horas del día, los 7 días de la semana. Si se programa un trabajo y el sistema está inactivo durante ese tiempo, inicia los trabajos cuando el sistema vuelve a funcionar.
Ideal para servidores Ideal para computadoras de escritorio y portátiles
Use cron cuando un trabajo deba ejecutarse a una hora y minuto en particular Use anacron cuando un trabajo deba ejecutarse independientemente de la hora y el minuto

Linux
  1. Cómo uso cron en Linux

  2. Cómo usar el formato de trabajo cron para programar tareas en Linux

  3. Cómo configurar Rsync con SSH en UNIX/Linux (rsync sin contraseña)

  4. Cómo crear subprocesos en Linux (con un programa de ejemplo en C)

  5. ¿Cómo configurar el trabajo CRON para que se ejecute cada 10 segundos en Linux?

Cómo configurar MySQL con Docker en Linux

Cómo automatizar tareas con trabajos cron en Linux

Cómo configurar un trabajo cron en Debian 10

Cómo configurar un trabajo cron en cPanel

Cómo configurar Logstash en Linux con ElasticSearch, Redis, Nginx

Cómo programar trabajos con Cron en Linux