it-swarm.com.de

Warum sollten wir create und copytruncate zusammen verwenden?

The Geek Stuff hat ein Beispiel über logrotate. copytruncate kopiert und schneidet die ursprüngliche Protokolldatei ab.

Warum sollten wir dann create verwenden? 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, was ist die Verwendung von maxage 100? Das rotate 4 Direktive löscht alte Protokolldateien nach 4 Umdrehungen.

42
Majid Azimi

Das ist wahrscheinlich ein Fehler, der nur in einem Beispiel in diesem Tutorial zu finden ist. Alle anderen Beispiele haben copytruncate ohne die Option create. Auch logrotateManpage gibt an, dass es tatsächlich ignoriert wird :

copytruncate

Schneiden Sie die ursprüngliche Protokolldatei nach dem Erstellen einer Kopie auf die Größe Null ab, 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 Abschneiden der Datei eine sehr kleine Zeitspanne liegt, sodass möglicherweise einige Protokolldaten verloren gehen. Wenn diese Option verwendet wird, hat die Option zum Erstellen keine Auswirkung, da die alte Protokolldatei an Ort und Stelle bleibt.


In Bezug auf maxage kann dies beispielsweise für Protokolldateien nützlich sein, die für einige Rotationsperioden (Tage/Wochen/Monate) leer sein können. Wenn Sie notifempty verwenden, wird eine leere Protokolldatei nicht gedreht Sie können also noch zu alte gedrehte Dateien an Ort und Stelle haben.

60
Marki555