Hier werden die Unterschiede zwischen zwei Versionen gezeigt.
| Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
|
admin_grundlagen:systemd_timer [2017/11/17 14:10] ingo_wichmann |
admin_grundlagen:systemd_timer [2025/04/04 09:44] (aktuell) valentin_bachem |
||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | 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 11 Uhr in den Monaten Januar, Mai und November den aktuellen Zeitstempel in eine Datei ''/tmp/timer'' zu schreiben. | + | 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. |
| - | <file txt /etc/systemd/system/date.timer> | + | Zeitangabe testen: |
| - | [Unit] | + | systemd-analyze calendar 'FRI *-1,5,11-* 9..12:0/2' |
| - | Description=Run date.service every 2 minutes on Fridays in Jan, May and Nov between 0900 and 1058 hrs | + | |
| + | Timer Unit anlegen: | ||
| + | systemctl edit --full --force dateprint.timer | ||
| + | |||
| + | <file txt /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] | + | [Timer] |
| - | OnCalendar=FRI *-1,5,11-* 9,10:0/2 | + | OnCalendar=FRI *-1,5,11-* 9..12:0/2 |
| + | |||
| + | [Install] | ||
| + | WantedBy=timers.target | ||
| </file> | </file> | ||
| - | <file txt /etc/systemd/system/date.service> | + | Syntax Unit File prüfen: |
| - | [Unit] | + | systemd-analyze verify dateprint.timer |
| - | Description=Prints date into /tmp/timer file | + | (( |
| + | 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 | ||
| + | )) | ||
| + | |||
| + | Service Unit anlegen: | ||
| + | systemctl edit --force --full dateprint.service | ||
| + | |||
| + | <file txt /etc/systemd/system/dateprint.service> | ||
| + | [Unit] | ||
| + | Description=Prints date into /tmp/timer file | ||
| | | ||
| - | [Service] | + | [Service] |
| - | Type=oneshot | + | Type=oneshot |
| - | ExecStart=/usr/bin/sh -c '/usr/bin/date >> /tmp/timer' | + | ExecStart=/bin/sh -c 'date >> /tmp/timer' |
| - | User=nutzer19 | + | User=nutzer19 |
| - | Group=nutzer19 | + | Group=users |
| </file> | </file> | ||
| + | |||
| + | Syntax Unit File prüfen: | ||
| + | systemd-analyze verify dateprint.service | ||
| + | (( | ||
| + | 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 | ||
| + | )) | ||
| + | |||
| + | Service einmalig testen: | ||
| + | systemctl start dateprint.service | ||
| Der so erstellte Timer wird dann mit | Der so erstellte Timer wird dann mit | ||
| - | systemctl enable date.timer --now | + | systemctl enable dateprint.timer --now |
| aktiviert. | aktiviert. | ||
| + | Wann läuft der Timer das nächste Mal? | ||
| + | systemctl status dateprint.timer | ||
| + | |||
| + | Welche Timer gibt es im System? | ||
| + | systemctl list-timers | ||