Cron vs Anacron Cómo programar trabajos usando Anacron en Linux

Cron vs Anacron Cómo programar trabajos usando Anacron en Linux

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

Para programar una tarea en tiempo o más tarde, puede usar el 'en' o 'lote'comandos y para configurar comandos para ejecutarse repetidamente, puede emplear el cron y anacron instalaciones.

Cron: es un demonio utilizado 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 se ejecutarán continuamente 24x7, como servidores.

Los comandos/tareas se escriben en trabajos cron que están programados en archivos crontab. El archivo CRONTAB del sistema predeterminado es /etc/crontab, Pero cada usuario también puede crear su propio archivo CRONTAB que puede iniciar comandos a veces que el usuario define.

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

$ crontab -e 

Cómo configurar Anacron en Linux

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

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

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

Sin embargo, si usas anacron, Puede estar seguro de que la próxima vez que encienda el escritorio/computadora portátil nuevamente, 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 utilizando el formato a continuación (los comentarios dentro del archivo anacrontab deben comenzar con #).

Comando de identificación de trabajo de retraso de período 

Del formato anterior:

  • período - Esta es la frecuencia de ejecución de trabajo especificada en días o como @Daily, @weekly o @Monthly por una vez por día, semana o mes. También puede usar números: 1 - diariamente, 7 - semanal, 30 - mensual y N - número de días.
  • demora - Es la cantidad de minutos para esperar antes de ejecutar un trabajo.
  • Identificación del trabajo - Es el nombre distintivo del trabajo escrito en archivos de registro.

Para ver archivos de ejemplo, escriba:

$ ls -l/var/spool/anacron/ Total de 12 -rw ------- 1 raíz raíz 9 de junio 1 10:25 Cron.Daily -RW ------- 1 raíz de raíz 9 de mayo 27 11:01 Cron.Monthly -RW ------- 1 raíz de raíz 9 de mayo 30 10:28 Cron.semanalmente 
  • dominio - es el comando o el script de shell que se ejecutará.
Esto es lo que prácticamente sucede:
  • Anacron verificará si se ha ejecutado un trabajo dentro del período especificado en el campo. Si no, ejecuta el comando especificado en el campo de comando después de esperar el número de minutos especificados en el campo de retraso.
  • Una vez que el trabajo ha sido ejecutado, registra la fecha en un archivo de marca de tiempo en el /var/spool/anacron Directorio con el nombre especificado en el campo ID (nombre de archivo de marca de tiempo).

Veamos ahora un ejemplo. Esto ejecutará el /home/aaronkilik/bin/respaldo.mierda guión todos los días:

@Daily 10 Ejemplo.diario/bin/bash/home/aaronkilik/bin/respaldo.mierda 

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

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

  • Start_hours_range - Esto establece un rango de tiempo en el que se iniciarán los trabajos (yo.e ejecutar trabajos solo durante las siguientes horas).
  • Random_delay - Esto 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.

ANACRON - /ETC /ANACRONTAB
# /etc /anacrontab: archivo de configuración para Anacron # Consulte Anacron (8) y Anacrontab (5) para más detalles. Shell =/bin/sh path =/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin home =/root logName = root # estas reemplazan las entradas de cron 1 1 5 Cron.Parts de ejecución diarios-Informar /etc /Cron.diario 7 10 Cron.Partes de ejecución semanales-Informe /etc /Cron.semanal @monthly 15 cron.Partes de ejecución mensuales-Informar /etc /cron.Ejemplo mensual @Daily 10.diario/bin/bash/home/aaronkilik/bin/respaldo.mierda 

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

Cron Anacron
Es un demonio No es un demonio
Apropiado para máquinas de servidor Apropiado para máquinas de escritorio/portátiles
Le permite ejecutar trabajos programados cada minuto Solo le permite ejecutar trabajos programados a diario
No ejecuta un trabajo programado cuando la máquina está apagada Si la máquina está apagada cuando se debe un trabajo programado, ejecutará un trabajo programado cuando la máquina esté alimentada la próxima vez
Puede ser utilizado por usuarios normales y raíz Solo puede ser utilizado por root a menos que lo contrario (habilitado para usuarios normales con configuraciones específicas)

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

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