Cron-Vs-Anacron-How-to-Schedule-Jobs-Using-Anacron-on-Linux

Cron или Anacron: как планировать выполнение задач с помощью Anacron в Linux

Утилиты Linux

В этой статье мы расскажем о cron и anacron, а также покажем, как настроить anacron в Linux. Мы также рассмотрим сравнение этих двух утилит.

Чтобы запланировать задачу на заданное время, вы можете использовать команды «at» или «batch», а для настройки команд на многократное/регулярное выполнение вы можете использовать средства cron и anacron.

Cron — это служба, используемая для запуска запланированных задач, таких как резервное копирование системы, обновления и многое другое. Он подходит для запуска запланированных задач на машинах, которые будут работать непрерывно 24/7, таких как сервера.

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

Чтобы создать личный файл crontab, просто введите следующее:

$ crontab -e

 

Как настроить Anacron в Linux?

Anacron используется для периодического запуска команд с частотой, определенной в днях. Его работа немного отличается от работы cron; предполагая, что машина не будет включена все время.

Anacron подходит для выполнения ежедневных, еженедельных и ежемесячных запланированных заданий, обычно выполняемых cron, но на машинах, которые не будут работать 24/7, то есть ноутбуки и настольные компьютеры.

Предполагается, что у вас есть запланированное задание (например, сценарий резервного копирования), которое будет запускаться с использованием cron каждую полночь, возможно, когда вы уже спите, а ваш настольный компьютер/ноутбук к этому времени выключен. Ваш резервный скрипт не будет выполнен.

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

 

Как работает Anacron в Linux?

Задания anacron перечислены в /etc/anacrontab, и задания можно запланировать в следующем формате (комментарии внутри файла anacrontab должны начинаться с #):

period delay job-identifier command

 

Из вышеуказанного формата:

  • period — это частота выполнения задания, указанная в днях или в виде @daily, @weekly или @monthly для одного раза в день, неделю или месяц  соответственно. Вы также можете использовать числа: 1 — ежедневно, 7 — еженедельно, 30 — ежемесячно и N — количество дней.
  • delay — это количество минут ожидания перед выполнением задания.
  • job-id — это отличительное имя для задания, записанное в файлах журнала.

 

 

Чтобы просмотреть файлы примеров, введите:

$ ls -l /var/spool/anacron/

total 12
-rw------- 1 root root 9 Jun 1 10:25 cron.daily
-rw------- 1 root root 9 May 27 11:01 cron.monthly
-rw------- 1 root root 9 May 30 10:28 cron.weekly

 

  • command — это команда или сценарий оболочки, который будет выполнен.

 

Вот, что происходит на практике:
  • Anacron проверит, выполнено ли задание за указанный период в поле period. Если нет, он выполняет команду, указанную в поле command, после ожидания количества минут, указанного в поле delay.
  • После выполнения задания оно записывает дату в файл метки времени в каталоге /var/spool/anacron с именем, указанным в поле id задания (имя файла метки времени).

 

 

Давайте теперь посмотрим на пример. Этот пример будет запускать скрипт /home/aron/bin/backup.sh каждый день:

@daily 10 example.daily /bin/bash /home/aron/bin/backup.sh

 

 

Если машина выключена, когда ожидается выполнение задания backup.sh, anacron запустит её через 10 минут после включения машины, не ожидая еще 7 дней:

В файле anacrontab есть две важные переменные, которые вы должны понимать:

  • START_HOURS_RANGE — задает временной интервал, в течение которого будут запускаться задания (т.е. задания будут выполнятся только в течение следующих часов).
  • RANDOM_DELAY — определяет максимальную случайную задержку, добавляемую к пользовательской задержке задания (по умолчанию это 45).

 

 

Вот так может выглядеть ваш файл anacrontab:

Anacron – /etc/anacrontab File
# /etc/anacrontab: configuration file for anacron

# See anacron(8) and anacrontab(5) for details.

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
HOME=/root
LOGNAME=root

# These replace cron's entries
1 5 cron.daily run-parts --report /etc/cron.daily
7 10 cron.weekly run-parts --report /etc/cron.weekly
@monthly 15 cron.monthly run-parts --report /etc/cron.monthly

@daily 10 example.daily /bin/bash /home/aron/bin/backup.sh

 

 

Ниже приводится сравнение cron и anacron, чтобы помочь вам понять, когда их использовать:

Cron Anacron
Это служба Это не служба
Подходит для серверных машин Подходит для настольных компьютеров/ноутбуков
Позволяет запускать запланированные задания каждую минуту. Позволяет запускать только запланированные задания на ежедневной основе.
Не выполняется запланированное задание, когда машина выключена Если машина выключена, когда запланировано задание, она выполнит запланированное задание при следующем включении машины.
Может использоваться как обычными пользователями, так и пользователем root. Может использоваться только пользователем root, если не указано иное (включено для обычных пользователей с конкретными настройками).

 

 

Основное различие между cron и anacron заключается в том, что cron эффективно работает на машинах, которые будут работать непрерывно, в то время как anacron предназначен для машин, которые будут отключены через день или неделю.

Если вы знаете какой-либо другой способ, поделитесь с нами, используя форму комментария ниже.

 

 

Спасибо за уделенное время на прочтение статьи!

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Ciscoкурсы по кибербезопасности,  полный курс по кибербезопасностикурсы DevNet (программируемые сети) от Академии Ciscoкурсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco и Linux с трудоустройством!

Спешите подать заявку! Осталось пару мест. Группы стартуют 22 июля, а следующая 19 августа, 23 сентября, 21 октября, 25 ноября, 16 декабря, 20 января, 24 февраля.
Что Вы получите?
  • Поможем стать экспертом в сетевом администрировании и получить международные сертификаты Cisco CCNA Routing & Switching или Linux LPI.
  • Предлагаем проверенную программу и учебник экспертов из Cisco Networking Academy и Linux Professional Institute, сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и сделать карьеру. 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проводим вечерние онлайн-лекции на нашей платформе или обучайтесь очно на базе Киевского офиса.
  • Спросим у вас об удобном времени для практик и подстроимся: понимаем, что времени учиться мало.
  • Если хотите индивидуальный график — обсудим и осуществим.
  • Выставим четкие дедлайны для самоорганизации. Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
А еще поможем Вам:
  • отредактировать резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроим на работу в Cisco по программе Cisco Incubator, New Graduate и Experienced. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco CCNA Routing & Switching и Linux LPI, подайте заявку или получите бесплатную консультацию.
Утилиты Linux

Больше похожих постов

Как установить Postman на Linux

Как установить Postman на Linux

344
0
Postman — самая популярная платформа для совместной работы при разработке API (Application Programming Interface), которую используют 10 миллионов разработчиков и…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Most Viewed Posts
Меню