3.9.11.4 Планировщик заданий anacron
Скачать документОписание работы
Пример использования
Файл настроек
Сравнение cron и anacron
Окружение
- Версия РЕД ОС: 8
- Конфигурация: Рабочая станция
- Версия ПО: cronie-anacron-1.5.6-1
Программа anacron, как и cron, используется для настройки команд на многократное или регулярное выполнение.
Cron — это служба, используемая для запуска запланированных задач. Cron хорошо подходит для запуска запланированных задач на машинах, которые будут работать непрерывно 24/7, таких как серверы. Причём, если в запланированное время компьютер будет выключен, задача выполнена не будет.
Anacron — асинхронный или анахроничный cron. Используется для периодического запуска команд с частотой, определенной в днях. Его работа несколько отличается от работы cron, предполагая, что машина не будет включена все время.
Anacron подходит для выполнения ежедневных, еженедельных и ежемесячных запланированных заданий на ноутбуках или ПК. Если используется anacron, можно быть уверенным, что при следующем включении компьютера или ноутбука запланированная задача обязательно будет выполнена.
Вы можете подробнее ознакомиться с настройкой anacron, просмотрев наши обучающие видео:
на RuTube — Планировщик задач в РЕД ОС. Anacron;
в Яндекс.Дзен — Планировщик задач в РЕД ОС. Anacron;
в VK Видео — Планировщик задач в РЕД ОС. Anacron.
На наших каналах вы также сможете найти много другой полезной информации.
Описание работы
В РЕД ОС есть man-страница с информацией по использованию и применению anacron, вызываемая командой:
man anacron
Утилита anacron, как и cron, имеет таблицу планирования. Задания anacron перечислены в файле /etc/anacrontab, их можно запланировать в следующем формате (комментарии внутри файла anacrontab должны начинаться с #):
#period delay job-identifier command
где:
period – это частота выполнения задания, указанная в днях или в виде: @daily, @weekly или @monthly для одного раза в день, неделю или месяц соответственно. Также можно использовать числа: 1 – ежедневно, 7 – еженедельно, 30 – ежемесячно и N – количество дней;
delay – это количество минут ожидания перед выполнением задания. Желательно для каждого задания указывать разное время, чтобы несколько заданий не запускались одновременно;
job-id – это отличительное имя для задания, записанное в файлах журнала. Это имя используется для создания файла контроля задания. Файл создаётся в папке /var/spool/anacron/ и содержит сведения, позволяющие программе anacron контролировать выполнение задания;
command – это команда или путь к сценарию оболочки, который будет выполнен.
Anacron использует не такие подробные параметры, как cron. Наименьший интервал, который существует в anacron – день. Это значит, что anacron нужно использовать как дополнение к cron, а не в качестве его замещения.
Anacron имеет следующий принцип работы — он проверяет, выполнено ли задание за указанный период в поле period. Если нет, anacron выполняет команду из поля command после ожидания определенного количества минут (delay).
После выполнения задания anacron записывает дату в файл метки времени в каталоге /var/spool/anacron с именем, указанным в поле id задания (имя файла метки времени).
Пример использования
Приведенный пример будет запускать скрипт /home/user/backup.sh каждый день:
#period delay job-identifier command @daily 10 example.daily /bin/bash /home/user/backup.sh
Если машина выключена, когда ожидается выполнение задания backup.sh, anacron запустит выполнение этого задания через 10 минут после следующего включения машины, не ожидая еще 7 дней.
Файл настроек
В файле anacrontab, кроме запланированных заданий, также есть важные переменные, которые необходимо понимать:
cat /etc/anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly
Здесь:
RANDOM_DELAY — определяет максимальную случайную задержку в минутах, добавляемую к пользовательской задержке задания (по умолчанию 45 мин);
START_HOURS_RANGE — задает временной интервал, в течение которого будут запускаться задания (т.е. задания будут выполнятся только в течение следующих часов).
Сравнение cron и anacron
Cron | Anacron |
---|---|
является службой | не является службой |
подходит для серверных машин | подходит для ПК и ноутбуков |
позволяет запускать запланированные задания каждую минуту | позволяет запускать запланированные задания только на ежедневной основе |
если машина выключена, запланированное задание не выполняется | если машина выключена, когда запланировано задание, anacron выполнит запланированное задание при следующем включении машины |
может использоваться как локальными пользователями, так и суперпользователем root | может использоваться только суперпользователем root, если не указано иное (включено для обычных пользователей с конкретными настройками) |
Основное различие между cron и anacron заключается в том, что cron эффективно работает на машинах, которые будут работать непрерывно, в то время как anacron предназначен для машин, которые будут отключены через день или неделю.
Дата последнего изменения: 24.09.2024
Если вы нашли ошибку, пожалуйста, выделите текст и нажмите Ctrl+Enter.