7.9.4.- Uso de anacron

cron es una buena herramienta para realizar tareas como rotar los ficheros de registro en sistemas que están activos la mayor parte del tiempo, pero es menos útil en sistemas que se apagan con frecuencia como ordenadores portátiles o PC, ya que en este tipo de equipos no se suelen ejecutar las tareas cron nocturnas, algo que puede saturar los ficheros de registro, crear confusión en /tmp y otros problemas.

Una solución es utilizar anacron (http://anacron.sourceforge.net/), que está concebido como un suplemento para cron. anacron asegura que las tareas de mantenimiento regular se ejecuten en intervalos razonables. Guarda un registro de los programas que se deberían ejecutar y la frecuencia en días con la que deberían hacerlo. anacron comprueba cuándo se ejecutaron por última vez los programas que debe controlar, según su configuración. Si el periodo de tiempo transcurrido es superior al intervalo de ejecución del programa, anacron ejecuta el programa. Esto nos permite reconfigurar las tareas cron normales como tareas anacron, asegurándonos así de que se ejecutarán incluso en los sistemas que se apagan con regularidad.

anacron se controla a través del fichero /etc/anacrontab, que consta de tres tipos de líneas:

Líneas de comentarios

anacrontab_linea_1

Asignaciones de variables de entorno

anacrontab_linea_2

Líneas de definición de tareas

anacrontab_linea_3Estos campos son:

anacrontab_campo_periodo

anacrontab_retardo

anacrontab_identificador

anacrontab_comando

Obviamente para que esto funcione hay que llamar a anacron, lo que se suele hacer de una de estas dos maneras:

  • Mediante un script de inicio: podemos crear un script de inicio que ejecute anacron y configurarlo para que se ejecute desde nuestro modo de ejecución normal. Como alternativa, podemos colocar una llamada a anacron en un script de inicio local, /etc/rc.d/rc.local en Fedora o RedHat ,o /etc/boot.d/boot.local en Suse.
  • Mediante una tarea cron: podemos crear una tarea cron que ejecute anacron. Normalmente, esta llamada reemplazará las entradas normales de las tareas cron en /etc/crontab. Probablemente, deseemos llamar a anacron con una frecuencia diaria o superior.

El método de script de inicio se utiliza preferiblemente en sistemas que se apagan e inician con frecuencia. El inconveniente de este método es que puede repercutir negativamente en el rendimiento cuando se inicia el sistema cuando anacron tenga que ejecutar una tarea que consuma tiempo. Llamar a anacron desde una tarea cron desplazará la carga a las horas de menor ocupación, pero si cron puede ejecutar anacron de manera fiable, entonces las tareas de anacron se pueden trasladar a cron. Las tareas cron se utilizan con frecuencia en sistemas que se dejan funcionando por la noche, asegurando que anacron y las tareas que controla se ejecutan con frecuencia.

Como alternativa, podemos llamar a anacron con una frecuencia superior a una vez al día. Otra opción es hacer que cron llame a anacron durante el descanso del usuario para evitar la interrupción causada por cualquier programa. Independientemente de cómo ejecutemos anacron, tendremos que desactivar cualquier tarea cron que esté ahora controlada por anacron, de lo contrario la tarea se llevará a cabo dos veces y cargará el sistema innecesariamente. anacron mide sus intervalos de ejecución en días, por lo que no sirve para ejecutar tareas cron cuya frecuencia sea de horas. No deberíamos eliminar las tareas cron de este tipo cuando configuremos cron para adaptarlo a anacron.