/var/logの2番目のログファイルが圧縮されていないのはなぜですか?

/var/logの2番目のログファイルが圧縮されていないのはなぜですか?

(Debian / Ubuntu)ログは/var/log/次のように保存されます。

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

カーネルログ、システムログなど

私はログ情報が大きくなるにつれて(すべてを1つのファイルに保存するのではなく)、より小さなファイルに分割して保存することを発見しました。 2番目のファイル(x.log.1)がなぜ圧縮されていないのか知りたいのですが。これは、最新のログにアクセスしやすくすることができますか?

答え1

同意します。これにより、最近のファイルにアクセスしやすくなります。とにかく、実際の動作は、delaycompress次のようなlogrotateディレクティブによって決定されます。

回転するときはファイルを圧縮せず、次に圧縮してください

歴史的な理由は logrotate マニュアルで見つけることができます:

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.

答え2

はい、これは最新のログファイルにアクセスしやすくするためです。 logrotateオプションはdelaycompressこれを制御します。 logrotateのマンページから:

遅延圧縮

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.

答え3

簡単に言えば、いいえ、最新のログにアクセスしやすくすることとは関係ありません。

代わりに、デーモンは名前を変更した後もログファイルに記録し続け、しばしば長い間記録されます。

ログファイルが圧縮されると(デフォルトでは新しいファイルが書き込まれ、古いファイルが削除されることを意味します)、ログファイルが最後に閉じられると、元の(現在削除されている)ファイルに後に書き込まれたすべての内容が失われます。

時々、デーモンプロセスは「中断」され、ログファイルのクローズを拒否することがあります。これが発生すると、次のことが表示されることがあります。

$ pid=$(pidof your_daemon)
$ ls -l /proc/$pid/fd/* | grep log
l-wx------ 1 root root 123456789 Jan 10 17:54  /proc/1234/fd/6 -> /var/log/your_daemon.log (deleted)
$ ls -lL /proc/$pid/fd/6 /var/log/your_daemon.log
-rw-r----- 0 root root 123456789 Jan 10 17:54  /proc/1234/fd/6
-rw-r----- 1 root root         0 Jan 10 01:04  /var/log/your_daemon.log
$ cmp /proc/$pid/fd/6 <( gunzip < /var/log/your_daemon.log.2.gz )
cmp: EOF on /dev/fd/63
  • /proc/$pid/fd/6まだ開いていて作成中ですが、リンク数は次のとおりです。0- それがあるいいえファイルシステムの名前
  • /var/log/your_daemon.log空(サイズ)0)何も記録されていないからです。
  • /var/log/your_daemon.2.gz圧縮が完了したら、ログの圧縮コピーです。これは、切り捨てられるまで開いているログファイルと同じです。

開いているが接続されていないログファイルが閉じられると、切り捨てられた部分以降のすべてのコンテンツは永久に失われます。

関連情報