logrotate mit Apache2-Protokolldateien

1166
rforte

Ich habe ein Apache-Setup, um täglich neue Protokolldateien zu erstellen:

CustomLog "|/usr/sbin/rotatelogs -f /var/log/apache2/access.log.%Y-%m-%d-%H_%M 86400" combined 

Dann versuche ich, logrotate zu verwenden, um diese Dateien zu komprimieren:

/var/log/apache2/access.log.* { compress create 0644 root root daily delaycompress missingok maxage 7 } 

Was passiert ist, dass ich eine Reihe von Dateien bekomme, die folgendermaßen aussehen:

-rw-r--r-- 1 root root 20 2011-11-26 06:49 access.log.2011-11-21-00_00.1.1.3.gz -rw-r--r-- 1 root root 33 2011-11-26 06:49 access.log.2011-11-21-00_00.2.gz.3.gz -rw-r--r-- 1 root root 20 2011-11-26 06:49 access.log.2011-11-21-00_00.3.gz.3.gz -rw-r--r-- 1 root root 20 2011-11-26 06:49 access.log.2011-11-22-00_00.1.1.3.gz -rw-r--r-- 1 root root 33 2011-11-26 06:49 access.log.2011-11-22-00_00.2.gz.3.gz -rw-r--r-- 1 root root 20 2011-11-26 06:49 access.log.2011-11-22-00_00.3.gz.3.gz -rw-r--r-- 1 root root 20 2011-11-26 06:49 access.log.2011-11-23-00_00.1.3.gz -rw-r--r-- 1 root root 33 2011-11-26 06:49 access.log.2011-11-23-00_00.2.gz.3.gz -rw-r--r-- 1 root root 44590255 2011-11-25 18:59 access.log.2011-11-25-00_00.4.gz -rw-r--r-- 1 root root 20 2011-11-25 06:42 access.log.2011-11-23-00_00.1.4.gz -rw-r--r-- 1 root root 20 2011-11-25 06:42 access.log.2011-11-24-00_00.4.gz -rw-r--r-- 1 root root 20 2011-11-25 06:42 access.log.2011-11-21-00_00.1.4.gz -rw-r--r-- 1 root root 33 2011-11-25 06:42 access.log.2011-11-21-00_00.2.gz.4.gz -rw-r--r-- 1 root root 20 2011-11-25 06:42 access.log.2011-11-22-00_00.1.4.gz -rw-r--r-- 1 root root 33 2011-11-25 06:42 access.log.2011-11-22-00_00.2.gz.4.gz 

Was ich möchte, ist, jeden Tag eine neue Datei erzeugen zu lassen und die Datei der letzten Tage gzip'd zu haben. Wie muss ich mein Logrotat dazu einrichten?

0

1 Antwort auf die Frage

1
Paul

Diese Linie:

/var/log/apache2/access.log.* 

Stimmt mit allen Dateien im Verzeichnis / var / log / apache2 überein, schließt alle bereits vorhandenen gzippierten Dateien ein. Im Grunde werden die bereits komprimierten Dateien komprimiert.

Ändern Sie es in

/var/log/apache2/access.log 

Um sicherzustellen, dass es nur auf die Datei access.log wirkt. Ansonsten sind die Einstellungen richtig.

Das einzige Problem dabei ist, dass ich dem Dateinamen in der CustomLog-Zeile einen Zeit- / Datumsstempel hinzufüge. Ich denke also, die CustomLog-Zeile zu ändern, um den Zugriff zu verwenden..log wäre besser, also könnte ich /access.*.log verwenden rforte vor 12 Jahren 0
Ja, ich verstehe. Ja, Sie müssen die .gz-Dateien irgendwie ausschließen. Das Ändern der Zeitstempelposition im Dateinamen wäre der einfachste Weg. Paul vor 12 Jahren 0
Markieren Sie diese Antwort mehr oder weniger korrekt, da das Aktualisieren des Dateinamens den Trick erfüllt. rforte vor 12 Jahren 0