Синтаксис cron — из тех вещей, что учатся за десять минут и удерживаются десять лет. Пять полей, диапазоны, шаги, списки, разница между */5 и 0,5,10,15,...,55 — и тестовый цикл написал запись, подождал час, посмотрел, сработало ли печально медленный. Спросить по сути быстрее.
Пять реальных расписаний
Каждые 5 минут в рабочие часы
$ clai cron-строка: каждые 5 минут с 9 до 17 по будням→ */5 9-17 * * 1-5
Первый день месяца
$ clai cron-строка: 02:30 первого числа каждого месяца→ 30 2 1 * *
Каждый понедельник в 3 ночи
$ clai cron-строка: каждый понедельник в 03:00→ 0 3 * * 1
Каждые 15 минут, но пропуская 23:00–06:00
$ clai cron-строка: каждые 15 минут с 06:00 до 22:59→ */15 6-22 * * *
Ежечасно, только в будни
$ clai cron-строка: в начале каждого часа с понедельника по пятницу→ 0 * * * 1-5
Проверка того, что есть
Перед crontab -e посмотрите, что уже там:
$ clai покажи мой текущий crontab→ crontab -l
Маленькое предостережение
Расписания интерпретируются в таймзоне cron-демона — обычно это таймзона системы. Если «каждый понедельник в 3 ночи» должно значить 3 ночи Лондона на UTC-сервере, скажите это в промпте — «каждый понедельник в 3 ночи лондонского времени, в UTC» — и получите 0 3 * * 1, скорректированное по часовому поясу (или запись установит CRON_TZ=Europe/London, если демон это умеет).
См. также
- Чистка старых логов и бэкапов — естественное место для «еженедельной» cron-записи.
- От однострочника к скрипту — момент, когда cron-job заслуживает своего скрипта.