Cron в systemd timer
Преобразуйте cron-выражение в готовую пару systemd .timer и .service.
Cron в systemd timer
Вставьте выражение cron — такое, которое вы поместили бы в crontab, например `0 3 * * *` или `*/15 9-17 * * 1-5` — и этот инструмент преобразует его в значение systemd `OnCalendar=`, а затем собирает вокруг него полный модуль `.timer` и соответствующий ему модуль `.service`. Миграция сервера с cron на systemd обычно означает выполнение этого перевода вручную для каждой задачи; это делается мгновенно и правильно, включая расширение полей для шагов и диапазонов.
Установите имя модуля и команду для запуска, а при необходимости — пользователя и рабочую директорию, которые должны использоваться сервисом. Случайная задержка добавляет `RandomizedDelaySec=`, чтобы парк серверов не просыпался одновременно; Persistent добавляет `Persistent=true`, поэтому запуск, пропущенный, когда машина была выключена, срабатывает сразу после включения. Часовой пояс добавляет к каждой строке расписания имя зоны IANA вместо того, чтобы полагаться на локальное время системы. Вставьте несколько строк cron одновременно, чтобы создать один таймер с несколькими записями `OnCalendar=` — удобно для задачи, которая раньше имела более одной строки в crontab.
Включите описание простого языка, чтобы получить однострочный комментарий выше каждого расписания, объясняющий, когда оно срабатывает, на вашем собственном языке. Инструмент также следит за единственной конструкцией cron, которую systemd действительно не может воспроизвести: когда оба field день месяца и день недели ограничены, cron рассматривает их как ИЛИ, а systemd's OnCalendar всегда их объединяет (И) — когда это происходит, добавляется предупреждающий комментарий, чтобы несоответствие не отправилось молча. Поле вне диапазона или выражение с неправильным количеством полей сообщается как простая ошибка, а не угадывается.
Все работает в вашем браузере — выражение cron и файл модуля никогда не покидают ваше устройство. Скопируйте результат, загрузите его как файл .txt, чтобы поместить в `/etc/systemd/system/`, или отправьте его в другой инструмент, чтобы продолжить работу с ним.