Зачем конвертировать TIMER в CRON?
Таймер systemd .timer и задание cron оба планируют повторяющиеся команды, поэтому администраторы, уходящие с systemd, хотят видеть то же расписание, выраженное в синтаксисе .CRON. Календарное выражение OnCalendar= чисто сопоставляется с полями cron (минута-час-день-месяц-день недели) для большинства обычных расписаний.
Способы конвертации TIMER в CRON
crontab + ручное сопоставление FREE
Запустите crontab -e и добавьте строку, пять временных полей которой соответствуют таймеру, например, OnCalendar=*-*-* 02:00:00 превращается в 0 2 * * * /path/to/command.
systemd-analyze calendar FREE
Запустите systemd-analyze calendar "*-*-* 02:00:00", чтобы подтвердить точное время следующего запуска значения OnCalendar, прежде чем переводить его в поля cron.
Об этих форматах
Файл .timer - это юнит systemd, который планирует время запуска другого юнита (обычно соответствующего файла .service) в Linux, являясь современной заменой cron. Это небольшой текстовый…
Открыть детали .TIMER →Файл .CRON связан с Unraid OS Cron data, это файл категории misc.
Открыть детали .CRON →Качество и на что обратить внимание
- Переносится только расписание; команда, окружение и пользователь берутся из соответствующего файла
.serviceи должны быть добавлены в строку cron вами самостоятельно. - Дополнительные функции systemd, такие как
Persistent=(наверстывание после простоя),RandomizedDelaySec=и окна точности, не имеют эквивалентов в cron и будут потеряны. - Выражения
OnCalendarс точностью до секунд или сложные выражения не могут быть представлены в пятипольном синтаксисе cron с минутной точностью.
Часто задаваемые вопросы
Существует ли автоматический конвертер таймеров в cron?
OnCalendar= с полями cron вручную, опционально проверяя результат с помощью systemd-analyze calendar и crontab.guru.Откуда берется команда для строки cron?
ExecStart= в соответствующем юните .service, который активирует таймер.Как конвертировать расписания в стиле `@daily`?
OnCalendar=*-*-* 00:00:00 соответствует @daily или 0 0 * * * в cron.Будут ли работать запуски для наверстывания упущенного?
Persistent=true.