В этой статье мы рассмотрим, как можно планировать и автоматически запускать задачи в фоновом режиме через регулярные промежутки времени с помощью команды Crontab.
Работа с регулярными заданиями вручную является рутинной, а самое главное очень времязатратной задачей для системного инженера. Такой процесс можно планировать и запускать автоматически в фоновом режиме без вмешательства человека с помощью службы cron в Linux или Unix-подобных операционных системах.
Читайте также: Как создавать и управлять заданиями с помощью Cron в Linux?
Например, вы можете автоматизировать такие процессы, как резервное копирование, расписание обновлений и синхронизация файлов и многое другое. Cron — это служба для запуска задач по расписанию. Cron просыпается каждую минуту и проверяет расписание задач в crontable. Crontab (CRON TABle) — это таблица, в которой мы можем планировать такие регулярные, повторяющиеся задачи.
Советы: каждый пользователь может иметь свой собственный crontab для создания, изменения и удаления задач. По умолчанию cron включен для пользователей, однако мы можем ограничить добавление записи в файл /etc/cron.deny.
Файл Crontab состоит из команд в строках и фактически имеет шесть полей разделенных пробелами или табуляцией. Первые пять полей представляют собой информацию о времени для запуска задач, а так же поле для самой команды:
- Минуты (содержит значения от 0 до 59)
- Часы (содержит значения от 0 до 23)
- День месяца (содержит значения от 1 до 31)
- Месяц года (содержит значения от 1 до 12 или в текстовом формате — Jan—Dec, вы можете использовать первые три буквы названия каждого месяца, т.е. Jan или Jun.)
- День недели (содержит значения от 0 до 6 или Sun—Sat. Здесь также можно использовать первые три буквы названия каждого дня, т.е. Sun или Sat.)
- Команды
1. Список записей Crontab
Выведите весь список задачь с помощью команды crontab с опцией -l для текущего пользователя:
2. Как отредактировать записи Crontab?
Чтобы отредактировать запись в crontab, используйте опцию -e, как показано ниже. В приведенном ниже примере откроется расписание заданий в редакторе VI. Внесите необходимые изменения и закройте редактор нажатием :wq, чтобы автоматически сохранить новые настройки:
3. Список запланированных Cron Jobs
Чтобы вывести список запланированных заданий конкретного пользователя с именем tecmint, используйте опции: -u (для поиска по пользователю) и -l (для вывода списоком):
Примечание: только пользователь root имеет полные права для просмотра записи crontab других пользователей. Обычный пользователь не может просматривать задачи созданные другими пользователями.
4. Удаление записи Crontab
Внимание: Crontab с параметром -r удалит запланированные задания без дополнительного подтверждения. Используйте опцию -i перед удалением пользовательской задачи crontab.
5. Запрос подтверждения перед удалением Crontab
Опция -i предложит вам подтверждение действия перед удалением пользовательской задачи 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:
9. Специальные строки для общего расписания
Строки | Значения |
@reboot | Команда будет выполнена при перезагрузке системы. |
@daily | Задача будет выполняться один раз в день или же можете использовать команду @midnight. |
@weekly | Задача будет выполняться один раз в неделю. |
@yearly | Задача будет выполняться один раз в год. Также можно использовать ключевое слово @annually. |
10. Выполнение нескольких команды используя двойной амперсанд (&&)
В следующем примере команды command1 и command2 выполняются ежедневно:
11. Отключение уведомлений по электронной почте.
По умолчанию, cron отправляет уведомление, на почту привязаную к учетной записи пользователя, выполняя cronjob. Если вы хотите отключить данную функцию, добавьте следущую задачу для cron, как показано ниже. Использование параметра >/dev/null 2>&1 в конце файла перенаправит весь вывод результатов cron в /dev/null:
Итоги
Автоматизация задач с помощью cron может помочь вам выполнить ваши задачи лучше, эффективнее и что самое важное — без каких-либо ошибок. Вы можете обратиться к странице справочника crontab для получения дополнительной информации, выполнив команду man crontab в своем терминале.
Cпасибо за уделенное время на прочтение статьи!
Если возникли вопросы, задавайте их в комментариях.
Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!
Чтобы знать больше и выделяться знаниями среди толпы 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.