cron vs anacron

cron vs anacron

Tengo un buen manejo de cómo funciona cron/anacron en Linux. Mi pregunta es esta:

  1. Anacron se ejecuta al iniciar sesión y comprueba si ha pasado más de un día desde que se /etc/cron.dailyejecutaron los scripts.
  2. Anacron ejecuta scripts en /etc/cron.dailyy actualiza la marca de tiempo en/var/spool/anacron/cron.daily
  3. salidas de anacron
  4. La computadora permanece encendida por más de 24 horas.
  5. cron se ejecuta y detecta una coincidencia de tiempo para cron.daily
  6. cron no hace nada desdetest -x anacrontab" == True

Si mi computadora funciona durante más de 24 horas, ¿cómo ejecuta cron los scripts en cron.daily (esta es una distribución basada en Debian)?

el valor predeterminado /etc/crontab(que se ejecuta cada minuto) prueba la presencia (o más precisamente, el bit -x) de /usr/bin/anacrone ignora la /etc/cron.dailycarpeta si la encuentra, pero no parece reiniciar anacron para hacer el trabajo.

EDITAR:

Entonces, cron SÍ inicia anacron desde la /etc/cron.dcarpeta, pero solo si la computadora está encendida e inicia sesión a las 7:30 am todos los días. Después de hacer un poco de kung-fu con hojas de cálculo, llegué a la conclusión de que los scripts /etc/cron.dailyse ejecutarán con un intervalo de entre 1 minuto y 31,5 horas.

Ex:

Escenario 1:

  • inicie sesión a las 11:59 pm del 23/05/2021
  • suponiendo que la marca de tiempo de Anacron /etc/cron.dailyes anterior al 23/05/2021, Anacron ejecuta todos los scripts /etc/cron.dailyy actualiza la marca de tiempo al 23/05/2021.
  • cerrar sesión
  • Vuelva a iniciar sesión a las 12:00 a. m. del 24/05/2021
  • Anacron ve que la última ejecución fue el 23/05/2021 y ahora es el 24/05/2021, por lo que Anacron ejecuta todos los scripts en/etc/cron.daily
  • tiempo transcurrido entre carreras: 1 minuto

Escenario 2:

  • inicie sesión a las 12:00 am del 23/05/2021
  • suponiendo que la marca de tiempo de Anacron /etc/cron.dailyes anterior al 23/05/2021, Anacron ejecuta todos los scripts /etc/cron.dailyy actualiza la marca de tiempo al 23/05/2021.
  • la computadora permanece encendida e iniciada sesión hasta las 7:30 am del 23/05/2021
  • cron ejecuta anacron desde su archivo crontab en/etc/cron.d
  • dado que la marca de tiempo es 23/05/2021, no pasa nada
  • la computadora permanece encendida e iniciada sesión hasta las 7:30 a. m. del 24/05/2021
  • cron ejecuta anacron desde su archivo crontab en/etc/cron.d
  • Anacron ve que la última ejecución fue el 23/05/2021 y ahora es el 24/05/2021, por lo que Anacron ejecuta todos los scripts en/etc/cron.daily
  • tiempo transcurrido entre carreras: 31,5 horas

Respuesta1

Todos los archivos del sistema /etc/cron.daily, /etc/cron.weeklyetc. incluyen una entrada para ejecutaranacronque a su vez incluye una entrada para ejecutarcron. /etc/crontabincluye entradas parapiezas de ejecuciónde modo queanacronestá dirigido porpiezas de ejecucióno porcron.

Otro archivo a considerar es /etc/anacrontabel que puede anular algunos de los efectos de/etc/crontab

Un sistema importantecronEl archivo relacionado es /etc/cron.daily/logrotateun script utilizado para iniciar el procesamiento de rotación de registros.

Usuario normalcrontabsse ejecutan independientemente de los cronjobs del sistema.

Tenga en cuenta que /etc/crontabno se ejecuta cada minuto: la actividad está determinada por las distintas especificaciones de crontab.

información relacionada