systemd vs cron
Добре питання 👌 І cron, і systemd-таймери можуть робити одне й те саме (наприклад, зберігати ipset кожні 30 хв). Але є кілька ключових відмінностей:
🔹 Переваги systemd-таймера над cron
Інтеграція з systemd
Логи виконання зберігаються у
journalctl
.Стан таймера можна подивитися командою:
systemctl status ipset-save.timer
Є зручні команди для запуску вручну (
systemctl start ...
) та діагностики.
Гнучкий запуск після подій
Можна налаштувати таймер не тільки "щохвилинно", а й "через 5 хв після старту сервера", "раз на день після network.target" тощо.
Пропуск завдань під час сну/вимкнення
У
cron
завдання, що мало бути о 02:00, буде проігнороване, якщо сервер спав/був вимкнений.У systemd-таймера є опція
Persistent=true
: він виконає пропущене завдання відразу після відновлення.
Зручне керування життєвим циклом
Можна легко зупинити/відключити таймер (
systemctl stop/disable
).Можна поєднати кілька завдань в один сервіс (наприклад, спершу
ipset save
, потім резервне копіювання).
Без cron-демона
На мінімальних серверах іноді cron не встановлений → systemd-таймер завжди доступний, бо systemd є всюди.
🔹 Переваги cron
Дуже простий та знайомий інтерфейс (
crontab -e
).Якщо вже є багато завдань у cron — легше додати ще одне.
Працює навіть на дуже старих системах без systemd.
Висновок
Для Ubuntu 24.04 (де systemd — це базова частина ОС) краще використовувати systemd-таймер: він надійніший, зручніше логувати й відновлювати завдання після перезавантаження. Cron теж працює, але це більш "олдскульний" варіант.
Хочеш, я зроблю готовий приклад systemd unit + timer для автоматичного ipset save
раз на 30 хвилин?
Last updated