Пишем команды в cron самостоятельно
В прошлой статье о cron мы рассмотрели базовые принципы работы с этим планировщиком заданий без использования панели управления. Теперь перейдём от теории к практике и разберёмся в том, как именно следует оформлять команды для их выполнения с той или иной периодичностью. Ниже мы приведём примеры команд и их значения.
Минуты
* * * * *
— каждую минуту.
0 * * * *
— каждый час в 0 минут.
15 * * * *
— каждый час в 15 минут (0:15, 1:15 и так далее).
*/15 * * * *
— каждые 15 минут.
0,15,25 * * * *
— три раза в час, в 0, 15 и 25 минут.
15-25 * * * *
— каждую минуту в каждом часу, начиная с 15-ой минуты и заканчивая 25-ой.
Часы
* 4 * * *
— каждую минуту в 4-ом часу каждого дня.
* */4 * * *
— каждую минуту в каждом 4-ом по счёту часу, начиная с полуночи (4, 8, 12, 16, 20, 0).
0 */4 * * *
— каждые четыре часа в 0 минут.
0 4 * * *
— каждый день в 4:00.
0 4,17,23 * * *
— каждый день в 4:00, 17:00 и 23:00.
* 4-17 * * *
— каждую минуту в каждом часу, начиная с 4-ого часа и заканчивая 17-ым.
* 4-17/2 * * *
— каждую минуту каждый второй час в диапазоне между 4-ым и 17-ым часами (6, 8, 10, 12, 14, 16).
Дни месяца
* * 6 * *
— каждую минуту в каждом часу 6-го числа каждого месяца.
15 4 6 * *
— 6-го числа каждого месяца в 4:15.
15 4 */6 * *
— в 4:15 в каждый 6-ой день месяца (6, 12, 18, 24, 30).
15 4 6-9 * *
— в 4:15 каждого дня каждого месяца, начиная с 6-ого числа и заканчивая 9-ым.
15 4 6,11,25 * *
— в 4:15 6-ого, 11-ого и 25-ого числа каждого месяца.
Месяцы
* * * 8 *
— каждую минуту каждого часа каждого дня в августе (8-ой месяц года).
* * * */2 *
— каждую минуту каждого часа каждого дня в каждый второй месяц года (февраль, апрель, июнь, август, октябрь, декабрь).
* * * 2-8 *
— каждую минуту каждого часа каждого дня в каждый месяц, начиная с февраля и заканчивая августом.
* * * 2,8 *
— каждую минуту каждого часа каждого дня в феврале и в августе.
15 4 * 3 *
— каждый день в марте в 4:15.
15 4 6 3 *
— каждый год 6 марта в 4:15.
Дни недели
* * * * 4
— каждую минуту каждого часа в каждый четверг каждого месяца.
11 11 * * 4
— каждый четверг в 11:11.
11 11 4 * 4
— каждое 4-ое число и каждый четверг в 11:11 (не означает, что 4-ое число обязательно должно выпадать на четверг).
11 11 4 4 4
— 4 апреля и каждый четверг в апреле в 11:11.
11 11 * * 0
или 11 11 * * 7
— каждое воскресенье в 11:11.
11 11 * * 1-5
— каждый будний день (с понедельника по пятницу) в 11:11.
Некоторые самые распространённые варианты периодичности можно задавать таким образом:
@reboot
— одиночное выполнение команды при перезапуске сервера.
@yearly
или @annually
— ежегодно.
@monthly
— ежемесячно.
@weekly
— каждую неделю.
@daily
или @midnight
— ежедневно.
@hourly
— каждый час.
Помните, что каждый файл crontab должен заканчиваться пустой строкой, иначе последнее правило или сразу весь файл будут проигнорированы. Все задания текущего пользователя удаляются с помощью команды crontab -r
. А с помощью man crontab
вы сможете увидеть справку о cron.
В работе с файлами crontab также могут помочь специальные сервисы по генерации команд для cron. Например, на сайтах Crontab Generator и CronMaker достаточно лишь ввести нужные значения — и вы получите готовую оформленную команду. А на сайте Crontab Guru можно проверить написанную вами команду и узнать больше о работе с cron.