О проекте
CronLens — учебный инструмент для cron-расписаний
CronLens раскладывает cron-выражение по настоящим часам выбранного пояса и показывает то, что обычно замечают только после первого сбоя: ночи перевода часов, чужие пояса и пересечения заданий.
Что здесь есть
- Циферблат и ведомость — рабочий пример: до четырёх заданий, три правила перевода часов, замечания, экспорт .ics и JSON с отпечатком.
- Справочник — словарь, легенда циферблата, правила и пределы; синтаксис и форматы — точные тексты ошибок и устройство файлов.
- Пять разборов — перевод часов, пояс выражения, два поля дня, пересечения и пять полей.
Чего здесь нет
- запуска заданий — CronLens ничего не выполняет;
- напоминаний — в .ics нет VALARM, страница ничего не присылает;
- хранения расписаний — состояние живёт на странице и в ссылке, которую вы копируете сами;
- учётных записей и тарифов.
Как устроен расчёт
- Запишите задание. Выражение из пяти полей, пояс IANA и длительность с запасом. Под полем выражение сразу раскладывается на пять картушей и читается по-русски.
- Рассчитайте окно. Выберите начало окна, его длину и правило перевода часов. Нажмите «Рассчитать»: циферблат и ведомость строятся в браузере по базе часовых поясов.
- Прочитайте и сохраните. Разберите замечания, сравните три правила на дне перевода и скачайте .ics или JSON. Отпечаток ведомости покажет, что повторный расчёт дал тот же результат.
На чём основан подход
Поведение правил и форматов взято из первоисточников. Тексты и материалы этих проектов не копировались; ниже — названия документов, которые можно найти самостоятельно.
- crontab(5) из cronie, man7.org — синтаксис пяти полей, правило ИЛИ, несуществующее и повторённое время. Отсюда правило «Буквально».
- cron(8) из Debian, manpages.debian.org — особая обработка переводов меньше трёх часов для заданий с фиксированным временем. Отсюда классы заданий и правило «С догоном».
- Amazon EventBridge Scheduler, раздел о типах расписаний и переходе на летнее время — пропуск и однократный повтор. Отсюда правило «Пропуск и один раз».
- systemd-analyze calendar, freedesktop.org — нормализованная запись и ближайшие срабатывания в местном времени и UTC. Отсюда лента картушей и колонки ведомости.
- RFC 5545 (iCalendar), rfc-editor.org — CRLF, свёртка по 75 октетов, разрыв и повтор для TZID. Отсюда .ics с моментами в UTC.