systemd: юниты, таймеры и логи journalctl
systemd — стандартный менеджер служб в большинстве дистрибутивов. Понимание его возможностей позволяет автоматизировать задачи, управлять службами и эффективно читать логи.
Управление службами
systemctl status nginx
systemctl start nginx
systemctl enable nginx
systemctl restart nginx
systemctl disable nginx
Проверить, почему служба не стартует: systemctl status и journalctl -u nginx -e.
Создание собственного юнита
[Unit]
Description=My backup script
After=network-online.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
[Install]
WantedBy=multi-user.target
Сохраните в /etc/systemd/system/backup.service, затем systemctl daemon-reload && systemctl enable --now backup.service.
Таймеры вместо cron
[Unit]
Description=Daily backup timer
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
Таймеры systemd лучше cron: поддерживают зависимости, логирование и пропущенные запуски (Persistent).
Работа с journalctl
journalctl -b # логи текущей загрузки
journalctl -u ssh -f # следить за службой
journalctl --since "1 hour ago"
journalctl -p err -b # только ошибки
journalctl --disk-usage
Ограничьте размер журнала в /etc/systemd/journald.conf: SystemMaxUse=500M. Это предотвратит заполнение диска.




