Как создавать задания Cron и управлять ими в Linux
Cron — один из самых полезных инструментов Linux и любимый разработчиками, поскольку он позволяет запускать автоматические команды в определенные периоды, даты и интервалы, используя сценарии как общего назначения, так и сценарии для конкретных задач. Учитывая это описание, вы можете представить, как системные администраторы используют его для автоматизации задач резервного копирования, очистки каталогов, уведомлений и т. д.
Задания Cron выполняются в фоновом режиме и постоянно проверяют файл /etc/crontab
, а также файлы /etc/cron.*/
и /var/spool/cron/.
каталоги. Файлы cron не подлежат редактированию напрямую, и у каждого пользователя есть уникальная таблица crontab.
Как же тогда создавать и редактировать задания cron? С помощью команд crontab. crontab — это метод, который вы используете для создания, редактирования, установки, удаления и составления списка заданий cron.
Команда создания и редактирования заданий cron одинакова и проста. И что еще круче, вам не нужно перезапускать cron после создания новых файлов или редактирования существующих.
crontab -e
Синтаксис Крон
Как и в случае с любым другим языком, работать с cron становится намного проще, если вы понимаете его синтаксис и вам следует знать два формата:
A B C D E USERNAME /path/to/command arg1 arg2
OR
A B C D E USERNAME /root/backup.sh
Объяснение приведенного выше синтаксиса cron:
- A: Минуты. Диапазон: 0–59.
- B: Диапазон часов: 0–23
- C: Дни. Диапазон: 0–31.
- D: Месяцы. Диапазон: 0–12.
- E: дни недели. Диапазон: 0–7. Начиная с понедельника, 0 или 7 представляют воскресенье.
- ИМЯ ПОЛЬЗОВАТЕЛЯ: замените это на свое имя пользователя.
- /path/to/command – имя сценария или команды, которую вы хотите запланировать.
Это не все. Cron использует 3 символа оператора, которые позволяют указать несколько значений в поле:
- Asterisk
(*)
: указывает все возможные значения для поля. - Запятая
(,)
: указывает список значений. - Дефис
(-)
: указывает диапазон значений. - Разделитель
(/)
: указывает значение шага.
Теперь, когда вы знаете синтаксис и операторы Cron, давайте посмотрим несколько примеров cron.
Примеры заданий Cron
Первым шагом к запуску команд cron является установка crontab с помощью команды:
crontab -e
Запускайте /root/backup.sh
в 3 часа ночи каждый день:
0 3 * * * /root/backup.sh
Запускайте script.sh
в 16:30 второго числа каждого месяца:
30 16 2 * * /path/to/script.sh
Запускайте /scripts/phpscript.php
в 22:00 в течение недели:
0 22 * * 1-5 /scripts/phpscript.php
Запускайте perlscript.pl
в 23 минуты после полуночи, в 2 и 4 часа ночи каждый день:
23 0-23/2 * * * /path/to/perlscript.pl
Запускайте команду Linux в 04:05 каждое воскресенье:
5 4 * * sun /path/to/linuxcommand
Параметры Крон
Перечислите задания cron.
crontab -l
OR
crontab -u username -l
Удалите все задания crontab.
crontab -r
Удалить задание Cron для конкретного пользователя.
crontab -r -u username
Строки в Crontab
Строки — одна из любимых вещей разработчиков, поскольку они помогают экономить время, устраняя повторяющееся написание. В Cron есть специальные строки, которые можно использовать для более быстрого создания команд:
@hourly
: запуск один раз в час, т. е. «0 * * * *».@midnight
: запускается один раз в день, т. е. «0 0 * * *».@daily
: то же, что и в полночь@weekly
: запускается один раз в неделю, т. е. «0 0 * * 0».@monthly
: запускается один раз в месяц, т. е. «0 0 1 * *».@annually
: запускается один раз в год, т. е. «0 0 1 1 *».@yearly
: то же, что @annually@reboot
: запускать один раз при каждом запуске.
Например, вот как делать резервную копию вашей системы каждый день:
@daily /path/to/backup/script.sh
На данный момент у вас есть все необходимое для создания системных задач и управления ими с помощью Cron. Теперь вы можете приступить к настройке и обслуживанию нескольких сред с помощью запланированных команд.
Насколько вы являетесь пользователем Cron? Есть ли какие-либо подробности, которые вы можете добавить в статью? Панель обсуждения находится ниже.
Когда вы достаточно разберетесь в том, как работает Crontab, вы сможете использовать эти изящные утилиты-генераторы Crontab для бесплатного создания строк crontab.
Также вы можете прочитать статью Ubuntu о том, как использовать Cron, здесь. Здесь есть ресурсы, которые могут оказаться вам полезными.