1 min read

Systemd timers вместо cron: когда прозрачность и логи решают всё

Systemd timers вместо cron: когда прозрачность и логи решают всё

Я перестал использовать cron на новых серверах около трёх лет назад. Не фанатично, но там, где это оправдано.

Предыстория

Была стандартная ситуация: дежурный скрипт для ротации логов. В cron записи выглядели аккуратно, но однажды лог-файл вырос до 3 ГБ и сервер лёг. Почему? Cron-задание висело, но никто об этом не знал — ни лога, ни алерта.

Я полез смотреть, что пошло не так. Оказалось, скрипт упал с ошибкой доступа к диску, а cron молча его перезапустил в следующую минуту. Никто не заметил, пока не случился сбой.

Проблема

У cron минимальная обратная связь. Нет встроенного контроля выполнения, нет детальных логов, нет управления зависимостями. Если задача завершилась с ошибкой — вы узнаете об этом только по косвенным признакам. Параллельные запуски? Cron не блокирует, и это ведёт к гонкам и дублированию.

Почему это важно?

Для бизнеса это потеря данных и лишние простои. Когда cron-задача не выполнилась вовремя, могут не сформироваться отчёты, не произойти бэкап или не синхронизироваться реплики. Всё это — деньги и нервы.

Решение

Я перевёл все критичные задачи на systemd timers. Всё просто: создаёте .timer и .service файлы. Timer задаёт расписание (аналогично cron), а service — что запускать. Плюс я использую встроенные механизмы:

  • 📌 Точные логи: journalctl -u myjob.service покажет stdout и stderr с таймстемпами.
  • 🕒 Отложенный запуск: можно выполнить задачу, если сервер был выключен в нужный момент.
  • ⚙️ Контроль зависимостей: запуск после монтирования файловой системы, после поднятия сети.
  • 🔁 Уведомления об ошибках: через OnFailure= отправляю алерт в Telegram или Slack.

Результат

С тех пор — ни одной молчаливой проблемы с расписаниями. Если задача упала, я знаю об этом через минуту. Логи всегда под рукой, время запуска предсказуемо. Отказоустойчивость повысилась, а боли стало меньше.

Systemd timers — не замена cron на все случаи, а инструмент, который даёт прозрачность там, где cron оставляет вас слепым.

📬 Свяжитесь с нами

Хотите внедрить это в своем бизнесе? Пишите нам!

Связаться с нами
Telegram
WhatsApp
Email