logrotate um eigene Logdateien erweitern

Bei vielen Projekten verwende ich Logdateien um evtl. Fehler aufzudecken. Diese versuche ich wenn möglich in das Standartverzeichnis /var/log zu legen. Damit diese Logdateien nicht zu groß werden und das System zumüllen, verwende ich den Dienst Logrotate. Sollte er nicht vorhanden sein, kann er wie folgt nachinstalliert werden:

$ sudo apt-get install logrotate

Ich habe mir angewöhnt nicht die globale Konfiguration /etc/logrotate.conf zu Ändern, sondern eine eigene Konfigurationsdatei für das jeweilige Projekt unter /etc/logrotate.d anzulegen.

$ sudo nano /etc/logrotate.d/ProjektName

Ein Beispiel für eine solche Konfiguration könnte das folgende Script sein.

/var/log/ProjektName/*.log { 
        weekly                  # wöchentlich
        rotate 4                # Behalte die letzten vier Wochen
        compress                # Komprimieren
        delaycompress           # Komprimieren nachdem verschieben
        missingok               # Ignorieren falls nicht existiert
        notifempty              # Leere Logdateien werden nicht rotiert
}

Weitere Befehle / Optionen können in der Man Page z.B. hier nachgelesen werden.

Um seine Konfiguration zu testen kann man das Skript mit dem Befehl logrotate testen. Der Parameter -d bewirkt eine Ausgabe während -f die Ausführung erzwingt.

$ logrotate -d -f /etc/logrotate.d/ProjektName

Weitere Informationen zum Thema:
http://wiki.ubuntuusers.de/Logdateien
http://www.fibel.org/linux/lfo-0.6.0/node361.html
http://www.linux-praxis.de/lpic1/manpages/logrotate.html