warum sollten wir create und copytruncate zusammen verwenden?

40

The Geek Stuff hat ein Beispiel dafür logrotate. copytruncatekopiert und schneidet die ursprüngliche Protokolldatei ab.

Warum sollten wir dann verwenden create? Die ursprüngliche Protokolldatei wurde nicht entfernt.

/tmp/output.log {
  size 1k
  copytruncate
  create
  compress
  compresscmd /bin/bzip2
  compressext .bz2
  rotate 4
  maxage 100
}

Eine andere Frage ist, wofür wird es verwendet maxage 100? Die rotate 4Direktive löscht alte Logdateien nach 4 Umdrehungen.

Majid Azimi
quelle
4
Ja, das macht keinen Sinn und man logrotatesagt sogar so: " copytruncate : [...] Wenn diese Option verwendet wird, hat die Option create keine Wirkung, da die alte Protokolldatei an Ort und Stelle bleibt."
Ulrich Schwarz
1
maxage 100löscht gedrehte Dateien, wenn sie älter als 100 Tage sind und die aktuelle Datei gedreht wird; auch wenn weniger als 4gedrehte Dateien existieren.
Lutz Prechelt

Antworten:

57

Das ist wahrscheinlich ein Fehler, der nur in einem Beispiel in diesem Tutorial zu finden ist. Alle anderen Beispiele haben copytruncateohne die createOption. Außerdem gibt die logrotate Manpage an , dass es tatsächlich ignoriert wird :

copytruncate

Kürzen Sie die ursprüngliche Protokolldatei nach dem Erstellen einer Kopie auf die Größe Null, anstatt die alte Protokolldatei zu verschieben und optional eine neue zu erstellen. Es kann verwendet werden, wenn ein Programm nicht angewiesen werden kann, seine Protokolldatei zu schließen, und daher möglicherweise für immer in die vorherige Protokolldatei schreibt (anhängt). Beachten Sie, dass zwischen dem Kopieren und dem Abschneiden der Datei eine sehr kurze Zeitspanne liegt, sodass möglicherweise einige Protokolldaten verloren gehen. Wenn diese Option verwendet wird, hat die Option create keine Auswirkung, da die alte Protokolldatei an Ort und Stelle bleibt.


In Bezug auf maxage, ich denke , es kann beispielsweise für Logfiles nützlich sein , die für wenige Rotationsperioden leer sein (Tage / Wochen / Monate) - wenn Sie verwenden notifemptyleer Logfile so dass Sie werden nicht zu alt anstelle noch gedreht Dateien, gedreht haben .

Marki555
quelle