cron против anacron

cron против anacron

Я довольно хорошо понимаю, как работает cron/anacron на Linux. У меня такой вопрос:

  1. anacron запускается при входе в систему и проверяет, прошло ли больше суток с момента /etc/cron.dailyзапуска скриптов
  2. anacron запускает скрипты в /etc/cron.dailyи обновляет временную метку в/var/spool/anacron/cron.daily
  3. выходы анакрона
  4. компьютер остается включенным более 24 часов
  5. cron запускается и обнаруживает совпадение по времени для cron.daily
  6. cron ничего не делает с тех порtest -x anacrontab" == True

Если мой компьютер работает более 24 часов, как cron запускает скрипты в cron.daily (это дистрибутив на базе Debian)?

по умолчанию /etc/crontab(запускаемый каждую минуту) проверяет наличие (точнее, бита -x) /usr/bin/anacronи игнорирует /etc/cron.dailyпапку, если находит ее, но, похоже, не перезапускает anacron для выполнения работы.

РЕДАКТИРОВАТЬ:

Итак, cron ДЕЙСТВИТЕЛЬНО запускает anacron из /etc/cron.dпапки, но только если компьютер включен и залогинен в 7:30 утра каждый день. Немного поиграв с таблицами, я пришел к выводу, что скрипты в нем /etc/cron.dailyбудут запускаться с интервалом от 1 минуты до 31,5 часов.

Бывший:

Сценарий 1:

  • войти в 23:59 5/23/2021
  • Если предположить, что временная метка anacron /etc/cron.dailyстарше 23.05.2021, anacron запускает все скрипты /etc/cron.dailyи обновляет временную метку до 23.05.2021.
  • выйти
  • войдите снова в 12:00 утра 24.05.2021 г.
  • anacron видит, что последний запуск был 23.05.2021, а сейчас 24.05.2021, поэтому anacron запускает все скрипты в/etc/cron.daily
  • прошедшее время между запусками: 1 минута

Сценарий 2:

  • войти в 12:00 утра 23.05.2021
  • Если предположить, что временная метка anacron /etc/cron.dailyстарше 23.05.2021, anacron запускает все скрипты /etc/cron.dailyи обновляет временную метку до 23.05.2021.
  • компьютер остается включенным и находится в системе до 7:30 утра 23.05.2021 г.
  • cron запускает anacron из своего файла crontab в/etc/cron.d
  • так как временная метка — 23.05.2021, ничего не происходит
  • компьютер остается включенным и находится в системе до 7:30 утра 24.05.2021 г.
  • cron запускает anacron из своего файла crontab в/etc/cron.d
  • anacron видит, что последний запуск был 23.05.2021, а сейчас 24.05.2021, поэтому anacron запускает все скрипты в/etc/cron.daily
  • Прошедшее время между запусками: 31,5 часа

решение1

Все системные файлы /etc/cron.daily, /etc/cron.weeklyи т.д. включают запись для запускаанакронкоторый в свою очередь включает запись для запускахрон. /etc/crontabвключает записи длячасти запускатак чтоанакронлибо управляетсячасти запускаили похрон.

Другой файл, который следует рассмотреть, это /etc/anacrontabфайл, который может переопределить некоторые эффекты/etc/crontab

Важная системахронсвязанный файл — это /etc/cron.daily/logrotateскрипт, используемый для инициирования обработки ротации журналов.

Обычный пользователькронтабывыполняются независимо от системных заданий cron.

Обратите внимание, что /etc/crontabпроцесс не выполняется каждую минуту — его активность определяется различными спецификациями crontab.

Связанный контент