11-Cron-Scheduling-Task-Examples-in-Linux

11 примеров настройки выполнения регулярных задач с помощью Cron в Linux

Cron

В этой статье мы рассмотрим, как можно планировать и автоматически запускать задачи в фоновом режиме через регулярные промежутки времени с помощью команды Crontab.

Работа с регулярными заданиями вручную является рутинной, а самое главное очень времязатратной задачей для системного инженера. Такой процесс можно планировать и запускать автоматически в фоновом режиме без вмешательства человека с помощью службы cron в Linux или Unix-подобных операционных системах.

 

 

Читайте также: Как создавать и управлять заданиями с помощью Cron в Linux?

 

 

Например, вы можете автоматизировать такие процессы, как резервное копирование, расписание обновлений и синхронизация файлов и многое другое. Cron — это служба для запуска задач по расписанию. Cron просыпается каждую минуту и ​​проверяет расписание задач в crontable. Crontab (CRON TABle) — это таблица, в которой мы можем планировать такие регулярные, повторяющиеся задачи.

 

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

 

11-Cron-Command-Examples-in-Linux

 

Файл Crontab состоит из команд в строках и фактически имеет шесть полей разделенных пробелами или табуляцией. Первые пять полей представляют собой информацию о времени для запуска задач, а так же поле для самой команды:

  • Минуты (содержит значения от 0 до 59)
  • Часы (содержит значения от 0 до 23)
  • День месяца (содержит значения от 1 до 31)
  • Месяц года (содержит значения от 1 до 12 или в текстовом формате — JanDec, вы можете использовать первые три буквы названия каждого месяца, т.е. Jan или Jun.)
  • День недели (содержит значения от 0 до 6 или SunSat. Здесь также можно использовать первые три буквы названия каждого дня, т.е. Sun или Sat.)
  • Команды

 

 

1. Список записей Crontab

Выведите весь список задачь с помощью команды crontab с опцией -l для текущего пользователя:

# crontab -l

00 10 * * * /bin/ls >/ls.txt

 

 

2. Как отредактировать записи Crontab?

Чтобы отредактировать запись в crontab, используйте опцию -e, как показано ниже. В приведенном ниже примере откроется расписание заданий в редакторе VI. Внесите необходимые изменения и закройте редактор нажатием :wq, чтобы автоматически сохранить новые настройки:

# crontab -e

 

 

3. Список запланированных Cron Jobs

Чтобы вывести список запланированных заданий конкретного пользователя с именем tecmint, используйте опции: -u (для поиска по пользователю) и -l (для вывода списоком):

# crontab -u sedicomm -l

no crontab for sedicomm

 

 

Примечание: только пользователь root имеет полные права для просмотра записи crontab других пользователей. Обычный пользователь не может просматривать задачи созданные другими пользователями.

 

 

4. Удаление записи Crontab

Внимание: Crontab с параметром -r удалит запланированные задания без дополнительного подтверждения. Используйте опцию -i перед удалением пользовательской задачи crontab.

 

# crontab -r

 

 

5. Запрос подтверждения перед удалением Crontab

Опция -i предложит вам подтверждение действия перед удалением пользовательской задачи crontab:

# crontab -i -r

crontab: really delete root's crontab?

 

 

6. Допустимые специальные символы (*, -, /,?, #)

  • Звездочка (*) — сопоставить все значения в поле или любое возможное значение.
  • Дефис () — для определения диапазона.
  • Косая черта (/) — /10, означает выполнять каждые десять минут или увеличить диапазон.
  • Запятая (,) — используется для разделения элементов.

 

 

7. Общесистемное расписание Cron

Системный администратор может использовать предопределенный каталог cron, как показано ниже:

  • /etc/cron.d
  • /etc/cron.daily
  • /etc/cron.hourly
  • /etc/cron.monthly
  • /etc/cron.weekly

 

 

8. Выполнение задачи в определенное время

Приведенные ниже задания удаляют пустые файлы и каталог из /tmp в 12:30 ежедневно. Вам необходимо указать имя пользователя для выполнения команды crontab. В приведенном ниже примере пользователь root выполняет задание cron:

# crontab -e

30 0 * * * root find /tmp -type f -empty -delete

 

 

9. Специальные строки для общего расписания

Строки  Значения
@reboot  Команда будет выполнена при перезагрузке системы.
@daily  Задача будет выполняться один раз в день или же можете использовать команду @midnight.
@weekly  Задача будет выполняться один раз в неделю.
@yearly  Задача будет выполняться один раз в год. Также можно использовать ключевое слово @annually.

 

 

10. Выполнение нескольких команды используя двойной амперсанд (&&)

В следующем примере команды command1 и command2 выполняются ежедневно:

# crontab -e

@daily <command1> && <command2>

 

 

11. Отключение уведомлений по электронной почте.

По умолчанию, cron отправляет уведомление, на почту привязаную к учетной записи пользователя, выполняя cronjob. Если вы хотите отключить данную функцию, добавьте следущую задачу для cron, как показано ниже. Использование параметра >/dev/null 2>&1 в конце файла перенаправит весь вывод результатов cron в /dev/null:

[[email protected] ~]# crontab -e
* * * * * >/dev/null 2>&1

 

 

Итоги

Автоматизация задач с помощью cron может помочь вам выполнить ваши задачи лучше, эффективнее и что самое важное — без каких-либо ошибок. Вы можете обратиться к странице справочника crontab для получения дополнительной информации, выполнив команду «man crontab» в своем терминале.

 

 

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

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

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

Чтобы знать больше и выделяться знаниями среди толпы 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, подайте заявку или получите бесплатную консультацию.
Cron

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

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

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

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

Most Viewed Posts
Меню