Logrotate (delaycompress) - gzip: stdin: file size changed while zipping

Wir bekommen neuerdings wieder Mails von Logrotate, hier ein Beispiel:

/etc/cron.daily/logrotate:
error: Compressing program wrote following message to stderr when compressing log /var/log/univention/connector-s4-status.log.1:
gzip: stdin: file size changed while zipping

Wir bekommen die Mails auf mehreren UCS-Systemen, allerdings mit unterschiedlichen Logdateien: log.smbd, log.nmbd, connector-s4-status.log

Auf anderen Debian-Systemen benutzen wir delaycompress, um das Komprimieren der Logdateien um eine Logdatei zu verz├Âgern (sodass keine Logdatei komprimiert wird, die sich noch ver├Ąndert). Auf den UCS-Systemen haben wir auch jeweils ucr set logrotate/delaycompress=yes gesetzt, wodurch wir vor einiger Zeit die Mails losgeworden sind. Erneutes Ausf├╝hren von ucr set logrotate/delaycompress=yes ber├╝hrt zwar die entsprechende Datei unter /etc/logrotate.d, aber f├╝gt ihr kein delaycompress mehr hinzu.

Anscheinend hat das bis mindestens 2019-08-13 08:27 funktioniert:

foobar:/etc/logrotate.d# l univention-s4-connector
-rw-r--r-- 1 root root 747 2019-11-13 12:08 univention-s4-connector
foobar:/etc/logrotate.d# grep delay univention-s4-connector
foobar:/etc/logrotate.d# l samba
-rw-r--r-- 1 root root 784 2019-08-13 08:27 samba
foobar:/etc/logrotate.d# grep delay samba
        delaycompress
        delaycompress

Als Workaround habe ich

_getBoolDefault("logrotate/delaycompress", "logrotate/" + name + "/delaycompress", settings, configRegistry)

zu folgender Datei hinzugef├╝gt:

/usr/lib/python2.7/dist-packages/univention/lib/ucrLogrotate.py

Die Datei wird nat├╝rlich bei einem Update ├╝berschrieben, daher w├Ąre es sch├Ân wenn UCS delaycompress (wieder?) ins System einbauen w├╝rde.

Man kann bei Logrotate auch Standardeinstellungen vorgeben, die f├╝r alle weiteren Logdateien gelten. Wir nutzen z.B. in /etc/logrotate.d/00linet:

dateext
delaycompress

Dadurch ist es nicht n├Âtig, Univention-Dateien anzfassen, um den von dir gew├╝nschten Effekt zu erzielen.

1 Like