Logrotate-Fehler

2449
Sathya

Bei der Verwendung von Logrotate aus einem Cronjob erhalte ich folgende Fehler:

error: unable to open /var/log/mylog.1 for compression 

Weiß jemand, was es bedeutet und wie kann ich es beheben?

2

4 Antworten auf die Frage

3
Colin Dunklau

Sie werden weitere Informationen benötigen.

Ist die Datei vorhanden und hat der Benutzer, der cron ausführt, die Berechtigung, sie zu lesen ?:

ls -l /var/log/mylog.1 

Sehen Sie, ob logrotate weitere Informationen geben kann. Es sollte eine verbose Flagge haben, die Sie mit '-v' aktivieren können.

2
chown

Dies bedeutet, /var/log/mylog.1dass diese Datei nicht existiert oder die Berechtigungen / der Besitz nicht zulassen, dass diese Datei komprimiert wird. Überprüfen Sie die Berechtigungen / den Besitz mit ls -l /var/log/mylog*.

1
stephanos

Wenn die Datei vorhanden ist und die Berechtigungen in Ordnung sind, kann dies dazu führen, dass die Datei geöffnet ist, wenn Sie versuchen, sie zu komprimieren. Um dies zu vermeiden, können Sie folgende Zeile hinzufügen /etc/logrotate.conf:

delaycompress 
0
Daniel Griscom

Ich habe diesen Fehler gerade selbst getroffen. Zusammenfassung: Es war ein Konflikt zwischen logrotateund einem Postrotate-Skript, das ich geschrieben hatte, wobei unter bestimmten Umständen mein logrotateSkript die soeben verschobene Protokolldatei löschte, bevor sie komprimiert wurde. Obwohl Sie denken, dass logrotatedie Datei komprimiert und dann das Skript nach dem Drehen ausgeführt wird, geschieht dies tatsächlich in der anderen Reihenfolge. Daher diese Fehlermeldung.

Da logrotatedie Datei, die in der Frage als fehlend angezeigt wird, direkt verwaltet wird, fällt mir nichts anderes ein, das dieses Problem verursachen könnte, es sei denn, die Dateiberechtigungen sind etwas sehr seltsam (z. B. schreibbar und nicht lesbar).