Cron: расшифровать и собрать

В одну сторону - что означает выражение и когда оно сработает; в другую - собрать выражение по описанию, не вспоминая порядок полей. Считается в браузере тем же движком, на котором устроен тренажёр по cron.

примеры:

что это значит

-

ближайшие запуски

    Время местное - то, что показывает ваш браузер. На сервере cron считает по его собственной зоне, и это первое, что стоит проверить, когда задание срабатывает «не в то время».

    Что стоит помнить про cron

    • Пять полей: минуты, часы, день месяца, месяц, день недели. Шестого поля с секундами в классическом cron нет.
    • День месяца и день недели складываются через «или», если оба заданы: 0 0 13 * 5 - это «13-го числа и каждую пятницу», а не «в пятницу 13-го».
    • */15 - это не «каждые 15 минут от запуска», а «минуты, кратные 15»: 0, 15, 30, 45.
    • Если шаг не делит период нацело, «каждые N» - неправда. 0 */15 * * * - это 00:00 и 15:00, а не «раз в 15 часов»: на границе суток счёт начинается заново, и второй промежуток - 9 часов. Ровно делят сутки только 1, 2, 3, 4, 6, 8 и 12, а час - 1, 2, 3, 4, 5, 6, 10, 12, 15, 20 и 30.
    • Окружение у cron своё. Скрипт, работающий в вашей оболочке, в cron падает из-за короткого PATH - пишите полные пути.
    • Строки со собачкой - сокращения: @daily (то же, что @midnight) = 0 0 * * *, @hourly = 0 * * * *, @weekly = 0 0 * * 0 (воскресенье), @monthly = 0 0 1 * *, @yearly (он же @annually) = 0 0 1 1 *.
    • @reboot - единственная строка без расписания: задание выполняется один раз при старте cron (то есть обычно при загрузке машины) и больше не повторяется. «Ближайших запусков» у неё нет, а после перезапуска только службы cron - выполнится снова. Для служб, которые должны подниматься сами, systemd-юнит надёжнее: он умеет перезапуск после падения и зависимости от сети.

    Комментарии

    Пока нет комментариев. Будь первым!

    Оставить комментарий

    Комментарий появится после проверки. Email не публикуется. Войти, чтобы не вводить имя каждый раз.