Добавить в корзинуПозвонить
Найти в Дзене
SysAdmin_Tools

Таймеры Systemd: автоматизация без Cron

Таймеры Systemd: автоматизация без Cron ⏰ Если ты всё ещё юзаешь cron для задач по расписанию, таймеры systemd могут тебя удивить. Это мощная альтернатива с зависимостями и логами. Разбираем, как настроить автоматизацию. Зачем нужны таймеры? Таймеры (.timer) — это юниты systemd для запуска задач по расписанию. Они интегрированы с сервисами, поддерживают зависимости и пишет логи в journald. Пример: бэкап базы данных Настраиваем ночной бэкап MySQL. Создаём два файла: /etc/systemd/system/backup.service: [Unit] Description=MySQL Backup After=network.target mysql.service [Service] ExecStart=/bin/bash /opt/backup_mysql.sh /etc/systemd/system/backup.timer: [Unit] Description=Nightly MySQL Backup [Timer] OnCalendar=*-*-* 03:00:00 Unit=backup.service [Install] WantedBy=timers.target Запуск: sudo systemctl daemon-reload sudo systemctl enable backup.timer sudo systemctl start backup.timer Бэкап стартует каждую ночь в 3:00. Формат расписания гибкий: daily — раз в день. Mon -- 09:00:

Таймеры Systemd: автоматизация без Cron ⏰

Если ты всё ещё юзаешь cron для задач по расписанию, таймеры systemd могут тебя удивить. Это мощная альтернатива с зависимостями и логами. Разбираем, как настроить автоматизацию.

Зачем нужны таймеры?

Таймеры (.timer) — это юниты systemd для запуска задач по расписанию. Они интегрированы с сервисами, поддерживают зависимости и пишет логи в journald.

Пример: бэкап базы данных

Настраиваем ночной бэкап MySQL. Создаём два файла:

/etc/systemd/system/backup.service:

[Unit]

Description=MySQL Backup

After=network.target mysql.service

[Service]

ExecStart=/bin/bash /opt/backup_mysql.sh

/etc/systemd/system/backup.timer:

[Unit]

Description=Nightly MySQL Backup

[Timer]

OnCalendar=*-*-* 03:00:00

Unit=backup.service

[Install]

WantedBy=timers.target

Запуск:

sudo systemctl daemon-reload

sudo systemctl enable backup.timer

sudo systemctl start backup.timer

Бэкап стартует каждую ночь в 3:00.

Формат расписания гибкий:

daily — раз в день.

Mon -- 09:00:00 — каждый понедельник в 9:00.

:0/10 — каждые 10 минут.

Проверить активные таймеры:

systemctl list-timers

Небольшой пример из практики:

На сервере клиента cron-скрипт для очистки кэша падал из-за отсутствия сети. Перевёл ротацию логов на systemd-таймер с After=network.target, и всё заработало. Логи в journalctl помогли найти проблему. ✅

Как видно Systemd-таймеры — это cron на стероидах. Далее - расскажу про journald!

#Linux #SysAdmin #Systemd #Timers