Расшифровка cron-выражений
Переводим расписание cron на русский, показываем ближайшие запуски в часовом поясе сервера и называем ловушки: день месяца против дня недели, минуты со звёздочкой, числа, которых нет в феврале. Можно вставить crontab целиком.
Cron выполняет задачи по часам сервера, а не по вашим. Выберите пояс, в котором живёт сервер, и запуски покажутся в нём. Ничего не отправляется: всё считается в браузере.
Расписание
Что показывает инструмент
Пять полей cron превращаются во фразу: «каждые 15 минут с 09:00 до 18:59 по будням». Ниже — ближайшие запуски с датой, днём недели и сроком «через 3 дня», число запусков за год и список ловушек, если они есть.
Понимаются макросы @daily, @weekly
и другие, имена месяцев и дней недели, шесть полей с секундами
и знаки L, W, # из Quartz
и Spring. Если вставить crontab целиком, расшифруется каждая строка,
а переменные MAILTO, PATH
и CRON_TZ будут учтены.
Нюансы, из-за которых задачи идут не так
Cron прощает многое, и расписание запускается не тогда, когда задумано. Самые частые случаи мы называем прямо.
- День месяца и день недели заданы оба. Cron связывает их через «или»:
0 9 1-7 * 1— это не первый понедельник месяца, а числа с 1-го по 7-е и каждый понедельник впридачу. - Минуты со звёздочкой при заданном часе:
* 3 * * *— 60 запусков подряд с 03:00 до 03:59, а не один в три ночи. - Шаг, не делящий час нацело:
*/7в минутах даёт 0, 7, 14… 56, а потом снова 0 — промежуток в четыре минуты вместо семи. - 31-е число в феврале, апреле, июне, сентябре и ноябре не наступает, 30 февраля не наступает никогда, 29 февраля бывает раз в четыре года.
Часовой пояс сервера
Cron выполняет задачи по часам машины, на которой стоит, а не по часам того, кто смотрит. Выберите пояс сервера, и запуски покажутся в нём: все российские пояса, UTC и соседние страны.
В поясах с переводом часов расписание может попасть в час, которого в этот день нет, или в час, который есть дважды. Такие даты отмечаются отдельно: разные реализации cron ведут себя в них по-разному.
Проверка команд
Если в строке есть команда, проверяется и она. Знак %
в cron обрывает команду: date +%F так не сработает.
Без перенаправления вывода всё, что команда печатает, уходит письмом.
У cron короткий PATH, и команда без полного пути может
не найтись. sudo внутри crontab повиснет на запросе
пароля.
Другие инструменты
Просмотр исходного кода страницы
Исходный HTML страницы глазами робота Яндекса или Google
Визуальный HTML-редактор
Пишете как в текстовом редакторе — получаете готовый HTML
Код цвета HTML
Код цвета в HEX, RGB, HSL и HSB, с проверкой контраста
Эффект стекла в CSS
Стекло с проверкой читаемости надписи и запасным вариантом
Конвертер CSS в SCSS и обратно
CSS в SCSS со вложенностью и обратно, со сверкой результата
Конструктор сеток CSS Grid
Сетка под три экрана с готовым HTML и проверкой порядка блоков