В этой статье мы расскажем о cron и anacron, а также покажем, как настроить anacron в Linux. Мы также рассмотрим сравнение этих двух утилит.
Чтобы запланировать задачу на заданное время, вы можете использовать команды «at» или «batch», а для настройки команд на многократное/регулярное выполнение вы можете использовать средства cron и anacron.
Cron — это служба, используемая для запуска запланированных задач, таких как резервное копирование системы, обновления и многое другое. Он подходит для запуска запланированных задач на машинах, которые будут работать непрерывно 24/7, таких как сервера.
Команды / задачи вписаны в задания cron, которые в свою очередь запланированы в файлах crontab. Системным файлом crontab по умолчанию является /etc/crontab, но каждый пользователь может также создать свой собственный файл crontab, который может запускать команды в моменты времени, определенные пользователем.
Чтобы создать личный файл crontab, просто введите следующее:
Как настроить Anacron в Linux?
Anacron используется для периодического запуска команд с частотой, определенной в днях. Его работа немного отличается от работы cron; предполагая, что машина не будет включена все время.
Anacron подходит для выполнения ежедневных, еженедельных и ежемесячных запланированных заданий, обычно выполняемых cron, но на машинах, которые не будут работать 24/7, то есть ноутбуки и настольные компьютеры.
Предполагается, что у вас есть запланированное задание (например, сценарий резервного копирования), которое будет запускаться с использованием cron каждую полночь, возможно, когда вы уже спите, а ваш настольный компьютер/ноутбук к этому времени выключен. Ваш резервный скрипт не будет выполнен.
Однако, если вы используете anacron, вы можете быть уверены, что при следующем включении настольного компьютера/ноутбука у вас обязательно будет выполнен скрипт резервного копирования.
Как работает Anacron в Linux?
Задания anacron перечислены в /etc/anacrontab, и задания можно запланировать в следующем формате (комментарии внутри файла anacrontab должны начинаться с #):
Из вышеуказанного формата:
- period — это частота выполнения задания, указанная в днях или в виде @daily, @weekly или @monthly для одного раза в день, неделю или месяц соответственно. Вы также можете использовать числа: 1 — ежедневно, 7 — еженедельно, 30 — ежемесячно и N — количество дней.
- delay — это количество минут ожидания перед выполнением задания.
- job-id — это отличительное имя для задания, записанное в файлах журнала.
Чтобы просмотреть файлы примеров, введите:
- command — это команда или сценарий оболочки, который будет выполнен.
Вот, что происходит на практике:
- Anacron проверит, выполнено ли задание за указанный период в поле period. Если нет, он выполняет команду, указанную в поле command, после ожидания количества минут, указанного в поле delay.
- После выполнения задания оно записывает дату в файл метки времени в каталоге /var/spool/anacron с именем, указанным в поле id задания (имя файла метки времени).
Давайте теперь посмотрим на пример. Этот пример будет запускать скрипт /home/aron/bin/backup.sh каждый день:
Если машина выключена, когда ожидается выполнение задания backup.sh, anacron запустит её через 10 минут после включения машины, не ожидая еще 7 дней:
В файле anacrontab есть две важные переменные, которые вы должны понимать:
- START_HOURS_RANGE — задает временной интервал, в течение которого будут запускаться задания (т.е. задания будут выполнятся только в течение следующих часов).
- RANDOM_DELAY — определяет максимальную случайную задержку, добавляемую к пользовательской задержке задания (по умолчанию это 45).
Вот так может выглядеть ваш файл anacrontab:
Ниже приводится сравнение cron и anacron, чтобы помочь вам понять, когда их использовать:
Cron | Anacron |
---|---|
Это служба | Это не служба |
Подходит для серверных машин | Подходит для настольных компьютеров/ноутбуков |
Позволяет запускать запланированные задания каждую минуту. | Позволяет запускать только запланированные задания на ежедневной основе. |
Не выполняется запланированное задание, когда машина выключена | Если машина выключена, когда запланировано задание, она выполнит запланированное задание при следующем включении машины. |
Может использоваться как обычными пользователями, так и пользователем root. | Может использоваться только пользователем root, если не указано иное (включено для обычных пользователей с конкретными настройками). |
Основное различие между cron и anacron заключается в том, что cron эффективно работает на машинах, которые будут работать непрерывно, в то время как anacron предназначен для машин, которые будут отключены через день или неделю.
Если вы знаете какой-либо другой способ, поделитесь с нами, используя форму комментария ниже.
Спасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet (программируемые сети) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).
Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!
- Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
- Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
- Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
- Проведем вечерние онлайн-лекции на нашей платформе.
- Согласуем с вами удобное время для практик.
- Если хотите индивидуальный график — обсудим и реализуем.
- Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
- Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
- отредактировать или создать с нуля резюме;
- подготовиться к техническим интервью;
- подготовиться к конкурсу на понравившуюся вакансию;
- устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.