Оба cronи anacronявляются демонами, которые могут планировать выполнение повторяющихся задач на определенный момент времени, определенный пользователем.
Основное различие между cronи anacronзаключается в том, что первое предполагает, что система работает непрерывно. Если ваша система выключена, и у вас запланировано задание на это время, оно никогда не будет выполнено.
С другой стороны, anacronэто «анахронизм» и предназначен для систем, которые не работают 24x7. Для его работы anacronиспользуются файлы с метками времени, чтобы узнать, когда в последний раз выполнялись его команды. Он также поддерживает файл, /etc/anacrontabкак и cronделает. Кроме того, cron.dailyработает анакрон каждый день. Следовательно, anacronможно выполнять задание только один раз в день, но cronможно запускать так же часто, как каждую минуту.
От man anacrontab:
При выполнении Anacron считывает список заданий из файла конфигурации, обычно / etc / anacrontab (см. Anacrontab (5)). Этот файл содержит список заданий, которые контролирует Anacron. Каждая запись задания указывает период в днях, задержку в минутах, уникальный идентификатор задания и команду оболочки.
Для каждого задания Anacron проверяет, было ли это задание выполнено за последние n дней, где n - период, указанный для этого задания. Если нет, Anacron запускает команду оболочки задания, ожидая количество минут, указанное в качестве параметра задержки.
После завершения команды Anacron записывает дату в специальный файл метки времени для этого задания, чтобы он мог знать, когда его выполнить снова. Только дата используется для расчета времени. Час не используется.
Это означает, что если задание запланировано на ежедневное выполнение, и компьютер был выключен в это время, когда запускается anacron, он может увидеть, что задание было выполнено в последний раз более 24 часов назад, и выполнить его правильно.
Например, если вы укажете следующее в /etc/anacrontab:
7 15 test.daily /bin/sh /home/username/script.sh
и в тот день, когда script.shзадание должно быть выполнено, если система не запущена, она anacronбудет выполнена через script.sh15 минут после восстановления системы.
Несколько ссылок: