Logrotate dreht die Datei nicht, nachdem die Dateigröße den Grenzwert überschritten hat.

9

Aus der Logrotate-Manpage.

Ein Protokoll wird nicht mehr als einmal an einem Tag geändert, es sei denn, das Kriterium für dieses Protokoll basiert auf der Größe des Protokolls

Laut Manpage sollte logrotate die Datei drehen, wenn die Konfiguration auf der Protokollgröße basiert. Meine Datei wird jedoch nicht angezeigt, selbst wenn die Dateigröße größer als 100.000 ist.

Kann jemand darauf hinweisen, worum es geht.

Meine Konfiguration

/home/jetech/work/lampstack-5.3.9-0/apache2/logs/access_log  {
    copytruncate
    compress
#    dateext
    rotate 365
    size 100k
    olddir /home/jetech/work/lampstack-5.3.9-0/apache2/old_logs
    notifempty
    nomail
    missingok
}
Robert
quelle

Antworten:

17

Woher wissen Sie, dass die Datei nicht gedreht wird?

Auf einem Debian 6 Linode, den ich habe, war in der Standardkonfiguration logrotatenur geplant cron, einmal pro Tag und zu einer sehr merkwürdigen Zeit zu laufen. Wenn es nur einmal pro Tag ausgeführt wird, hat es natürlich nur eine Gelegenheit pro Tag, die Konfiguration zu überprüfen, die Vergleiche durchzuführen und die erforderlichen Rotationen durchzuführen.

Sind Sie sicher, dass Sie tatsächlich Ihre Logrotate ausführen? Vielleicht möchten Sie Ihre überprüfen /etc/cron*und /etc/cron*/*sehen, wann und wie oft logrotate ausgeführt werden soll.

Wenn beispielsweise ein logrotateSkript in vorhanden ist /etc/cron.daily, möchten Sie es möglicherweise in verschieben /etc/cron.hourlyoder, wenn die Stunde nicht ausreicht, eine Datei /etc/cron.d/mit dem folgenden Inhalt erstellen , die logrotatealle 10 Minuten ausgeführt wird:

*/10  *  *  *  *   root    /usr/sbin/logrotate /etc/logrotate.conf
cnst
quelle
0

Funktioniert also logrotatetatsächlich so,

  • In der Konfiguration geben wir eine Lauffrequenz an ( täglich , stündlich , monatlich ).
  • Es gibt einen Eintrag /etc/cron.xxxfür logrotate , der ausgeführt werden soll.
  • logrotate läuft über crontab

Wenn Sie täglich und täglich zum angegebenen Zeitpunkt (/ etc / crontab) erwähnt haben, führt der crontab-Prozess den logrotate- Prozess zur Rotation aus. Die Dateigrößenbeschränkung funktioniert also nicht, da der Prozess niemals ausgeführt wird.

Swayamraina
quelle