Warum werden die zweiten Protokolldateien in / var / log nicht komprimiert?

11

Die Anmeldungen /var/log/(Debian / Ubuntu) werden als gespeichert

x.log
x.log.1
x.log.2.gz
...

wie Kernel-Protokolle, Syslogs usw.

Ich sehe, dass die Protokollinformationen mit zunehmender Aufteilung in kleinere Dateien gespeichert werden (anstatt alle in einer einzigen Datei zu speichern). Ich frage mich, warum die zweite Datei ( x.log.1) nicht komprimiert ist. Hat dies etwas mit dem einfacheren Zugriff auf neuere Protokolle zu tun?

Angs
quelle

Antworten:

11

Ich stimme Ihnen zu, dass dies nur einen einfacheren Zugriff auf aktuelle Dateien ermöglichen sollte. Wie auch immer, das tatsächliche Verhalten wird über die logrotate-Direktive 'delaycompress' entschieden, die besagt, dass die Datei beim Drehen nicht komprimiert wird, sondern beim nächsten Mal komprimiert wird.

Der historische Grund ist im Logrotate-Handbuch zu finden:

Postpone  compression of the previous log file to the next rotation 
cycle.  This has only effect when used in combination  with compress. 
It can be used when some program can not be told to close its logfile and 
thus might continue writing to the  previous log file for some time.
user1293137
quelle
1
"(...) wenn einem Programm nicht gesagt werden kann, dass es seine Protokolldatei sofort schließen soll und somit (...)". Diese Genauigkeit wurde in einem Beitrag zu Server Fault gefunden .
Ludovic Kuty
5

Ja, dies geschieht, damit auf neuere Protokolldateien leichter zugegriffen werden kann. Die Option logrotate delaycompresssteuert dies. Aus der Logrotate-Manpage:

delaycompress

Postpone compression of the previous log file to the next rotation cycle.  
This only has effect when used in combination with
compress.  It can be  used  when  some  program
cannot be told to close its logfile and thus might 
continue writing to the previous log file for some time.
Jordanm
quelle
4
Diese Optionen werden in den Dateien unter /etc/logrotate.confund verwendet /etc/logrotate.d/*.
slm