← До фільтрів та технологій

← До списку лабораторних по Linux

Linux Лабораторна 31: Створення systemd timer

Технологія: Linux

Номер лабораторної: 31 · Рівень: middle

Тема: systemd timers як заміна cron

Повний опис / сценарій лабораторної:

Мета: навчитися створювати власний service та timer unit щоб замінити cron для регулярного запуску скрипта.



Крок 1. Створити простий скрипт який записує час у файл.

Команди: mkdir -p ~/timer_lab; echo -e "#!/usr/bin/env bash\ndate >> $HOME/timer_lab/run.log" > ~/timer_lab/job.sh; chmod +x ~/timer_lab/job.sh



Крок 2. Створити unit файл сервісу.

Команда: sudo nano /etc/systemd/system/timer_lab.service

Вміст приблизно:

[Unit]

Description=Timer lab job



[Service]

Type=oneshot

ExecStart=/home/ВАШ_КОРИСТУВАЧ/timer_lab/job.sh



Крок 3. Створити unit файл таймера.

Команда: sudo nano /etc/systemd/system/timer_lab.timer

Приклад вмісту:

[Unit]

Description=Run timer lab job every minute



[Timer]

OnUnitActiveSec=60

Unit=timer_lab.service



[Install]

WantedBy=timers.target



Крок 4. Перезавантажити конфігурацію systemd.

Команда: sudo systemctl daemon-reload



Крок 5. Увімкнути та запустити таймер.

Команда: sudo systemctl enable --now timer_lab.timer

Пояснення: таймер почне запускати сервіс за розкладом.



Крок 6. Перевірити статус таймера.

Команда: systemctl list-timers | grep timer_lab

Пояснення: видно час останнього та наступного запуску.



Крок 7. Переконатися що лог файл наповнюється.

Команда: tail -n 5 ~/timer_lab/run.log

Пояснення: через декілька хвилин у файлі мають бути нові рядки.



Крок 8. Подивитися журнал для сервісу.

Команда: journalctl -u timer_lab.service -n 10



Крок 9. Зупинити таймер коли він більше не потрібен.

Команда: sudo systemctl disable --now timer_lab.timer



Крок 10. Міні звіт.

Завдання: опишіть переваги systemd timers у порівнянні з cron для складних сценаріїв.