Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:systemd_timer

Statt mit cron können auch mit dem Systemd-Timer zeitgesteuert Programme gestartet werden. Dazu werden zwei Dateien, *.timer und *.service unter /etc/systemd/system angelegt. Beispielsweise dateprint.timer und dateprint.service um alle 2 Minuten Freitags zwischen 9 und 12 Uhr in den Monaten Januar, Mai und November den aktuellen Zeitstempel in eine Datei /tmp/timer zu schreiben.

Zeitangabe testen:

systemd-analyze calendar 'FRI *-1,5,11-* 9..12:0/2'

Timer Unit anlegen:

systemctl edit --full --force dateprint.timer
/etc/systemd/system/dateprint.timer
[Unit]
Description=Run dateprint.service every 2 minutes on Fridays in Jan, May and Nov between 0900 and 1058 hrs
 
[Timer]
OnCalendar=FRI *-1,5,11-* 9..12:0/2
 
[Install]
WantedBy=timers.target

Syntax Unit File prüfen:

systemd-analyze verify dateprint.timer

1)

Service Unit anlegen:

systemctl edit --force --full dateprint.service
/etc/systemd/system/dateprint.service
[Unit]
Description=Prints date into /tmp/timer file
 
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'date >> /tmp/timer'
User=nutzer19
Group=users

Syntax Unit File prüfen:

systemd-analyze verify dateprint.service

2)

Service einmalig testen:

systemctl start dateprint.service

Der so erstellte Timer wird dann mit

systemctl enable dateprint.timer --now

aktiviert.

Wann läuft der Timer das nächste Mal?

systemctl status dateprint.timer

Welche Timer gibt es im System?

 systemctl list-timers
1) , 2)
Fehlermeldung „Attempted to remove disk file system, and we can't allow that.“ in systemd Versionen vor v239 kann ignoriert werden: https://github.com/systemd/systemd/issues/8592
admin_grundlagen/systemd_timer.txt · Zuletzt geändert: 2025/04/04 09:44 von valentin_bachem