Búsqueda de sitios web

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


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

Para programar una tarea en un momento determinado o posterior, puede usar los comandos 'at' o 'batch' y para configurar comandos para que se ejecuten repetidamente, puede emplear el < instalacionescron y anacron.

Cron: es un demonio que se utiliza para ejecutar tareas programadas, como copias de seguridad del sistema, actualizaciones y muchas más. Es adecuado para ejecutar tareas programadas en máquinas que funcionarán continuamente las 24 horas del día, los 7 días de la semana, como servidores.

Los comandos/tareas están escritos 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; Se supone que una máquina no estará encendida todo el tiempo.

Es apropiado para ejecutar trabajos programados diarios, semanales y mensuales que normalmente se ejecutan mediante cron, en máquinas que no funcionan las 24 horas del día, los 7 días de la semana, como computadoras portátiles y de escritorio.

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

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

Cómo funciona Anacron en Linux

Los trabajos de Anacron se enumeran en /etc/anacrontab y los trabajos se pueden programar usando el formato siguiente (los comentarios dentro del archivo anacrontab deben comenzar con #).

period   delay   job-identifier   command

Del formato anterior:

  • período: esta es la frecuencia de ejecución del trabajo especificada en días o como @daily, @weekly o @monthly una vez por día, semana o mes. También puedes utilizar números: 1 – diario, 7 – semanal, 30 – mensual y N – número de días.
  • retraso: es la cantidad de minutos que se deben esperar antes de ejecutar un trabajo.
  • job-id: es el nombre distintivo del trabajo escrito en los archivos de registro.

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
  • comando: es el comando o script de shell que se ejecutará.
Esto es lo que sucede prácticamente:
  • Anacron comprobará si un trabajo se ha ejecutado dentro del período especificado en el campo de período. De lo contrario, ejecuta el comando especificado en el campo de comando después de esperar la cantidad de minutos especificados en el campo de retraso.
  • Una vez que se ha ejecutado el trabajo, registra la fecha en un archivo de marca de tiempo en el directorio /var/spool/anacron con el nombre especificado en el campo de identificación del trabajo (nombre del archivo de marca de tiempo).

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 la 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 debes comprender:

  • START_HOURS_RANGE: esto establece el rango de tiempo en el que se iniciarán los trabajos (es decir, ejecutar trabajos solo durante las siguientes horas).
  • RANDOM_DELAY: define el retraso aleatorio máximo agregado al retraso definido por el usuario de un trabajo (por defecto es 45).

Así es como posiblemente se vería su archivo anacrontab.

/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 ayudarle a comprender cuándo usar cualquiera de ellos.

It’s a daemon

no es un demonio

Appropriate for server machines

Apropiado para máquinas de escritorio/portátiles

Enables you to run scheduled jobs every minute

Solo le permite ejecutar trabajos programados diariamente

Doesn’t executed a scheduled job when the machine if off

Si la máquina está apagada cuando vence un trabajo programado, ejecutará un trabajo programado cuando la máquina se encienda la próxima vez.

Can be used by both normal users and root

Sólo puede ser utilizado por root a menos que se indique lo contrario (habilitado para usuarios normales con configuraciones específicas)

La principal diferencia entre cron y anacron es que cron funciona eficazmente en máquinas que funcionarán continuamente mientras anacron está diseñado. para máquinas que se apagarán en un día o una semana.

Si conoce otra forma, compártala con nosotros mediante el formulario de comentarios a continuación.