systemctl timer

ludwigklr

New Member
Hallo,

ich habe in einem systemd timer für logrotate folgendes drin
.
.
[Timer]
OnCalendar=06:00 bzw.
OnCalendar=*-*-* 06:00
AccuracySec=10s
Persistent=true

und erwarte eigentlich das der logrotate täglich 06:00 stattfindet
Aber das systemctl list-timers logrotate liefert alle möglichen
andere Zeiten zu denen er logrotate durchführen will. Heute z.B. um 08:53
morgen will er es um 09:26:19 durchführen. Ich finde keine logische
Erklärung dafür
 
Last edited:
Code:
Pesistent=true
Falsch abgetippt oder steht in deiner Konfig wirklich Pesistent (ohne "r")?
 
Heute z.B. um 08:53
morgen will er es um 09:26:19 durchführen. Ich finde keine logische
Erklärung dafür
Wenn ich die Doku richtig interpretiere, gibt die OnCalendar-Option die Zeit an, zu der der Timer aktualisiert wird, nicht die Zeit, zu der der Timer ausgelöst wird. Der Timer wird dann so schnell wie möglich nach der Aktualisierung ausgelöst, aber nicht unbedingt sofort.

In deinemFall wird der Timer also täglich um 06:00 Uhr aktualisiert, aber nicht unbedingt sofort ausgeführt. Wenn der Timer zum Zeitpunkt der Aktualisierung nicht ausgeführt werden kann, z. B. weil das System zu diesem Zeitpunkt nicht läuft oder anderweitig beschäftigt ist, wird er zu einem späteren Zeitpunkt ausgeführt, sobald das System wieder läuft oder wieder freie Kapazitäten hat.

Um sicherzustellen, dass der Timer immer um 06:00 Uhr ausgeführt wird, sollte die AccuracySec-Option den Wert von 0 haben, dann würde der Timer sofort nach der Aktualisierung ausgeführt.
 
Last edited:
Ich habe das mit AccuracySec auch so verstanden. aber 10s sind nicht 3 Stunden
und gerade habe ich nochmal die Zeit auf 0 gestellt und den Timer restarted
jetzt will er morgen um um 14:58:18 starten was absolut keinen Sinn ergibt.

systemctl stop logrotate und systemctl start logrotate führt zu morgen 8:21:43
 
so, ich habe etwas gefunden.

1. es gab mehrere logrotate.timer im System
die habe ich verinheitlich bzw. verlinkt

2. es gab unter /etc/systemd/system/logrotate.timer.d eine
Datei override.conf mit einem Parameter
[Timer]
RandomizedDelaySec=12h

den habe ich auskommentiert

jetzt zeigt systemctl list-timers wie gewünscht morgen 06:00 für
logrotate an.
 
Back
Top