Cron Vs Anacron: cómo programar trabajos usando Anacron en Linux


En este artículo, explicaremos cron y anacron y también le muestra cómo configurar anacron en Linux. También cubriremos una comparación de estas dos utilidades.

Para programar una tarea en un momento dado o posterior, puede usar los comandos ' at ' o ' batch ' y para configurar comandos para que se ejecuten repetidamente, puede emplear < fuertes> cron y anacron instalaciones.

Cron: es un demonio que se utiliza para ejecutar tareas programadas, como copias de seguridad del sistema, actualizaciones y mucho más. Es adecuado para ejecutar tareas programadas en máquinas que se ejecutarán de forma continua 24X7, como servidores.

Los comandos/tareas están programados en trabajos cron que están programados en archivos crontab. El archivo crontab predeterminado del sistema es /etc/crontab , pero cada usuario también puede crear su propio archivo crontab que puede ejecutar comandos en los momentos que el usuario defina.

Para crear un archivo crontab personal, simplemente escriba lo siguiente:

$ crontab -e

Cómo configurar Anacron en Linux

Anacron se utiliza para ejecutar comandos periódicamente con una frecuencia definida en días. Funciona un poco diferente de cron ; asume que una máquina no estará encendida todo el tiempo.

Es apropiado para ejecutar trabajos programados diarios, semanales y mensuales que normalmente ejecuta cron, en máquinas que no funcionarán 24-7 como las computadoras portátiles y de escritorio.

Suponiendo que tiene una tarea programada (como un script de copia de seguridad ) que se ejecutará usando cron cada medianoche, posiblemente cuando esté dormido, y su computadora de escritorio/portátil esté apagada para ese momento. Su script de copia de seguridad no se ejecutará.

Sin embargo, si usa anacron , puede estar seguro de que la próxima vez que vuelva a encender la computadora de escritorio/portátil, se ejecutará el script de respaldo.

Cómo funciona Anacron en Linux

los trabajos de anacron se enumeran en /etc/anacrontab y los trabajos se pueden programar utilizando el formato a continuación (los comentarios dentro de un archivo de anacrontab deben comenzar con # ).

period   delay   job-identifier   command

Del formato anterior:

  • period – this is the frequency of job execution specified in days or as @daily, @weekly, or @monthly for once per day, week, or month. You can as well use numbers: 1 – daily, 7 – weekly, 30 – monthly and N – number of days.
  • delay – it’s the number of minutes to wait before executing a job.
  • job-id – it’s the distinctive name for the job written in log files.

Para ver archivos de ejemplo, escriba:

$ ls -l /var/spool/anacron/

total 12
-rw------- 1 root root 9 Jun  1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly
  • command – it’s the command or shell script to be executed.
  • Anacron will check if a job has been executed within the specified period in the period field. If not, it executes the command specified in the command field after waiting the number of minutes specified in the delay field.
  • Once the job has been executed, it records the date in a timestamp file in the /var/spool/anacron directory with the name specified in the job-id (timestamp file name) field.

Veamos ahora un ejemplo. Esto ejecutará el script /home/aaronkilik/bin/backup.sh todos los días:

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh

Si la máquina está apagada cuando se espera que se ejecute el trabajo backup.sh , anacron lo ejecutará 10 minutos después de que se encienda la máquina sin tener que esperar otros 7 días.

Hay dos variables importantes en el archivo anacrontab que debe comprender:

  • START_HOURS_RANGE – this sets time range in which jobs will be started (i.e execute jobs during the following hours only).
  • RANDOM_DELAY – this defines the maximum random delay added to the user defined delay of a job (by default it’s 45).

Así es como se vería tu archivo anacrontab.

Anacron -/etc/anacrontab File

# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1       5       cron.daily      run-parts --report /etc/cron.daily
7       10      cron.weekly     run-parts --report /etc/cron.weekly
@monthly        15      cron.monthly    run-parts --report /etc/cron.monthly

@daily    10    example.daily   /bin/bash /home/aaronkilik/bin/backup.sh                                                                      

La siguiente es una comparación de cron y anacron para ayudarlo a entender cuándo usar cualquiera de ellos.

La principal diferencia entre cron y anacron es que cron funciona de manera efectiva en máquinas que funcionarán continuamente mientras que anacron está destinado Para máquinas que se apagarán en un día o semana.

Si sabe de otra manera, comparta con nosotros utilizando el formulario de comentarios a continuación.