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 date.timer
und date.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: (Ubuntu 18.04, openSuSE (bis 15 noch nicht enthalten))
systemd-analyze calendar 'FRI *-1,5,11-* 9..12:0/2'
Timer Unit anlegen:
systemctl edit --full --force 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
Service Unit anlegen:
systemctl edit --force --full dateprint.service
[Unit] Description=Prints date into /tmp/timer file [Service] Type=oneshot ExecStart=/bin/sh -c 'date >> /tmp/timer' User=nutzer19 Group=nutzer19
Syntax Unit File prüfen:
systemd-analyze verify 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