Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:systemd_timer

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Nächste Überarbeitung
Vorherige Überarbeitung
admin_grundlagen:systemd_timer [2017/11/17 10:25] – angelegt pasqualadmin_grundlagen:systemd_timer [2025/04/04 09:44] (aktuell) – valentin_bachem
Zeile 1: Zeile 1:
-Statt mit cron können auch mit systemd timer zeitgesteuert Programme gestartet werden. Dazu werden zwei Dateien, *.timer und *.service unter /etc/systemd/system angelegt. Beispielsweise date.timer und date.service für ein Program, das alle 2 Minuten Freitags in den Monaten Januar, Mai und November den aktuellen zeitstempel in eine Datei /tmp/timer schreibt.+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.
  
-Die date.timer-Datei hat folgenden Aufbau:+Zeitangabe testen: 
 +  systemd-analyze calendar 'FRI *-1,5,11-* 9..12:0/2'
  
-  [Unit] +Timer Unit anlegen: 
-  Description=Run date.service every 2 minutes on Fridays in Jan, May and Nov+  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-* *:0/2+OnCalendar=FRI *-1,5,11-* 9..12:0/2
  
-und die date.service sieht so aus:+[Install] 
 +WantedBy=timers.target 
 +</file>
  
-  [Unit] +Syntax Unit File prüfen: 
-  Description=Prints date into /tmp/timer file+  systemd-analyze verify dateprint.timer 
 +(( 
 +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> 
 + 
 +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  
 +  systemctl enable dateprint.timer --now 
 +aktiviert. 
 + 
 +Wann läuft der Timer das nächste Mal? 
 +  systemctl status dateprint.timer
  
-Der so erstellte Timer wird dann mit systemctl enable date.timer --now aktiviert.+Welche Timer gibt es im System? 
 +   systemctl list-timers
admin_grundlagen/systemd_timer.1510914347.txt.gz · Zuletzt geändert: 2017/11/17 10:25 von pasqual