Введение
anacron — компьютерная программа, выполняющая периодическое планирование задач, что традиционно делает cron, но без предположения о непрерывной работе системы. Таким образом, её можно использовать для управления выполнением ежедневных, еженедельных и ежемесячных заданий (или любых задач с периодом в n дней) на системах, которые не работают круглосуточно. Изначально anacron был разработан и реализован Кристианом Шварцем на Perl для операционной системы Unix. Позже он был переписан на C Итаем Цуром, а среди его сопровождающих были Шон «Шалех» Перри и Паскаль Хаким. anacron является зависимостью cronie, поддерживаемого Red Hat, и обновления cronie от Red Hat включают в себя также обновления для anacron.
Преимущества
Системы Unix обычно выполняют "фоновые задачи" вроде ротации журналов, удаления неиспользуемых файлов, индексации локальных файлов для поисковой системы, отправки отчетов об использовании дискового пространства и т.п. Для планирования этих задач может использоваться программа cron. С помощью cron задачи обычно планируются к выполнению в периоды, когда система, как ожидается, будет простаивать. Если система выключена в момент, когда задача должна быть запущена, она не будет выполнена. Anacron работает иначе: он переносит выполнение задач на другое время, чтобы они были запущены, когда система включена и использует cron.
Недостатки
Только системный администратор может настроить задачи anacron. В отличие от этого, cron позволяет пользователям, не являющимся администраторами, настраивать запланированные задачи. При необходимости пользователь, не являющийся администратором, может использовать команду `at` Unix для запроса запланированной задачи (которая гарантированно будет выполнена). При запуске эта команда может автоматически запросить выполнение себя на будущую дату, тем самым создавая впечатление регулярно запланированной задачи с гарантированным исполнением. anacron может выполнять задачи не чаще одного раза в день (или реже, например, еженедельно или ежемесячно). В отличие от этого, cron позволяет выполнять задачи с частотой до каждой минуты (но не гарантирует их выполнение в случае сбоя системы). На практике это обычно не является проблемой, поскольку редко возникает необходимость гарантировать выполнение задачи чаще, чем (как минимум) раз в день, особенно на системе, которая не обязательно работает постоянно. Если система перезагружается или запускается после полуночи, ежедневные задачи выполняются после задержки, указанной пользователем, последовательно (в порядке очереди), так что одновременно выполняется только одна задача anacron. После завершения этой задачи запускается следующая и так далее. Это поведение можно изменить, разрешив одновременное (параллельное) выполнение задач, но это может потребовать системных ресурсов, необходимых пользователю для работы. В отличие от этого, cron будет выполнять ежедневные задачи только в установленное время (например, посреди ночи, когда, предположительно, машина не используется). fcron — это другая реализация cron, которая пытается сочетать в себе функциональность Vixiecron и anacron.