Es gibt die Größe der Protokolldatei an, die die Drehung auslösen soll. Beispielsweise size 50M
wird eine Protokollrotation ausgelöst, sobald die Datei mindestens 50 MB groß ist. Sie können das Suffix M
für Megabyte, k
Kilobyte und G
Gigabyte verwenden. Wenn kein Suffix verwendet wird, bedeutet dies Bytes. Sie können das Beispiel am Ende überprüfen. Es gibt drei Richtlinien zur Verfügung size
, maxsize
und minsize
. Laut Manpage :
minsize size
Log files are rotated when they grow bigger than size bytes,
but not before the additionally specified time interval (daily,
weekly, monthly, or yearly). The related size option is simi-
lar except that it is mutually exclusive with the time interval
options, and it causes log files to be rotated without regard
for the last rotation time. When minsize is used, both the
size and timestamp of a log file are considered.
size size
Log files are rotated only if they grow bigger then size bytes.
If size is followed by k, the size is assumed to be in kilo-
bytes. If the M is used, the size is in megabytes, and if G is
used, the size is in gigabytes. So size 100, size 100k, size
100M and size 100G are all valid.
maxsize size
Log files are rotated when they grow bigger than size bytes even before
the additionally specified time interval (daily, weekly, monthly,
or yearly). The related size option is similar except that it
is mutually exclusive with the time interval options, and it causes
log files to be rotated without regard for the last rotation time.
When maxsize is used, both the size and timestamp of a log file are
considered.
Hier ist ein Beispiel:
"/var/log/httpd/access.log" /var/log/httpd/error.log {
rotate 5
mail [email protected]
size 100k
sharedscripts
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Hier ist eine Erklärung für beide Dateien /var/log/httpd/access.log
und /var/log/httpd/error.log
. Sie werden immer dann gedreht, wenn sie größer als 100.000 werden, und die alten Protokolldateien werden [email protected]
nach 5 Umdrehungen per Post (unkomprimiert) gesendet, anstatt entfernt zu werden. Dies sharedscripts
bedeutet, dass das postrotate
Skript nur einmal ausgeführt wird (nachdem die alten Protokolle komprimiert wurden), nicht einmal für jedes gedrehte Protokoll. Beachten Sie, dass die doppelten Anführungszeichen um den ersten Dateinamen am Anfang dieses Abschnitts es logrotate ermöglichen, Protokolle mit Leerzeichen im Namen zu drehen. Es gelten die normalen Regeln für Shell-Anführungszeichen mit ,
und \
Zeichen.
Wie von Zeeshan erwähnt, die logrotate Optionen
size
,minsize
,maxsize
sind Auslöser für die Rotation.Um es besser zu erklären. Sie können logrotate so oft ausführen, wie Sie möchten. Wenn jedoch kein Schwellenwert erreicht wird, z. B. die erreichte Dateigröße oder die entsprechende Zeit, werden die Protokolle nicht gedreht.
Die Größenoptionen stellen nicht sicher, dass Ihre gedrehten Protokolle auch die angegebene Größe haben. Damit sie nahe an der angegebenen Größe liegen, müssen Sie das logrotate-Programm ausreichend oft aufrufen. Dies ist kritisch.
Bei Protokolldateien, die sich sehr schnell aufbauen (z. B. in Hunderten von MB pro Tag), müssen Sie sicherstellen, dass logrotate häufig aufgerufen wird, es sei denn, Sie möchten, dass sie sehr groß sind! das ist kritisch.
Um zu verhindern, dass sich Ihre Festplatte mit Protokolldateien mit mehreren Gigabyte füllt, müssen Sie sicherstellen, dass logrotate häufig genug aufgerufen wird, da sonst die Protokollrotation nicht so gut funktioniert, wie Sie es möchten.
Unter Ubuntu können Sie einfach zur stündlichen Rotation wechseln, indem Sie das Skript /etc/cron.daily/logrotate nach /etc/cron.hourly/logrotate verschieben
Oder hinzufügen
In Ihre / etc / crontab-Datei. Alle 5 Minuten ausführen.
Die
size
Option ignoriert die täglichen, wöchentlichen und monatlichen Zeitoptionen. Aber Minsize & Maxsize berücksichtigen dies.Die Manpage ist dort etwas verwirrend. Hier ist meine Erklärung.
minsize
dreht sich nur, wenn die Datei eine angemessene Größe erreicht hat und der festgelegte Zeitraum abgelaufen ist. zB minsize 50MB + täglich Wenn die Datei 50MB erreicht, bevor die tägliche Zeit abgelaufen ist, wächst sie bis zum nächsten Tag weiter.maxsize
wird gedreht, wenn das Protokoll eine festgelegte Größe erreicht oder die entsprechende Zeit abgelaufen ist. zB maxsize 50MB + täglich. Wenn die Datei 50 MB groß ist und wir noch nicht am nächsten Tag sind, wird das Protokoll gedreht. Wenn die Datei nur 20 MB groß ist und wir zum nächsten Tag wechseln, wird die Datei gedreht.size
wird gedreht, wenn das Protokoll> Größe. Unabhängig davon, ob stündlich / täglich / wöchentlich / monatlich angegeben ist. Wenn Sie also eine Größe von 100 MB haben, bedeutet dies, dass bei einer Protokolldatei> 100 MB das Protokoll gedreht wird, wenn die Protokolldatei ausgeführt wird, wenn diese Bedingung erfüllt ist. Sobald es gedreht wurde, ist das Hauptprotokoll 0 und ein nachfolgender Lauf führt zu nichts.Also im Fall der Operation. Insbesondere maximal 50 MB würde ich Folgendes verwenden:
Das heißt, er würde maximal 8 Stunden Protokolle erstellen. Und es würden 8 von ihnen mit jeweils nicht mehr als 50 MB sein. Da er sagt, dass er jeden Tag mehrere Gigabyte bekommt und davon ausgeht, dass sie sich mit einer ziemlich konstanten Geschwindigkeit aufbauen und die maximale Größe verwendet wird, wird er ungefähr das Maximum erreichen, das für jede Datei erreicht wird. Sie werden also wahrscheinlich jeweils nahe an 50 MB liegen. Angesichts des von ihnen erstellten Volumens müsste er sicherstellen, dass die Protokollierung häufig genug ausgeführt wird, um die Zielgröße zu erreichen.
Da ich dort stündlich eingestellt habe, müssten wir mindestens jede Stunde logrotieren. Aber da sie sich auf 2 Gigabyte pro Tag aufbauen und wir 50 MB wollen ... unter der Annahme einer konstanten Rate von 83 MB pro Stunde. Sie können sich also vorstellen, dass wir in diesem Fall 83 MB Protokolle erhalten, wenn wir jede Stunde logrotate ausführen, obwohl die maximale Größe auf 50 eingestellt ist. In diesem Fall sollte die Ausführung auf alle 30 Minuten oder weniger ausreichen.
Stellen Sie sicher, dass die Protokollierung alle 30 Minuten ausgeführt wird.
quelle