私のログ回転の設定は次のとおりです。
/var/log/glusterfs/*.log /var/log/glusterfs/bricks/*.log /var/log/glusterfs/bricks/*.log.* {
sharedscripts
daily
rotate 3
copytruncate
size 100M
missingok
compress
delaycompress
ifempty
postrotate
/usr/bin/killall -HUP glusterfs > /dev/null 2>&1 || true
/usr/bin/killall -HUP glusterd > /dev/null 2>&1 || true
endscript
}
ディレクトリは次のとおりです。
username@server:/var/log/glusterfs/bricks$ ll
total 405980
-rw------- 1 root root 0 Dec 23 00:05 be-data.log
-rw------- 1 root root 1 Dec 29 09:38 be.log.1
-rw------- 1 root root 0 Dec 25 11:24 nl.log
-rw------- 1 root root 0 Dec 29 09:49 nl.log.1.1
-rw------- 1 root root 0 Dec 29 09:50 nl.log.1.1.1
-rw------- 1 root root 0 Dec 29 09:55 nl.log.1.1.1.1
-rw------- 1 root root 0 Dec 29 09:55 nl.log.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 09:55 nl.log.1.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 09:55 nl.log.1.1.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 09:55 nl.log.1.1.1.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 10:08 nl.log.1.1.1.1.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 10:08 nl.log.1.1.1.1.1.1.1.1.1.1
-rw------- 1 root root 0 Dec 29 10:08 nl.log.1.1.1.1.1.1.1.1.1.1.1
-rw------- 1 root root 368402432 Dec 29 10:08 nl.log.1.1.1.1.1.1.1.1.1.1.1.1
-rw------- 1 root root 610304 Dec 23 00:05 bo.log.1
-rw------- 1 root root 860160 Dec 23 00:05 bricks.log.1
-rw------- 1 root root 589824 Dec 23 00:05 other.log.1
私が見ることができるもの:
- ログは圧縮されません。
- ログが100MBを超える
- 計算が機能しません
- 空のログファイルが存在し、空のログファイルが循環したくありません。
私のlogrotate設定は上記のすべての問題をどのように解決するのですか?
答え1
設定ファイルで、ディレクトリのログファイルに2つのモードを指定します/var/log/glusterfs/bricks
。
*.log
*.log.*
これらのパターンの2番目のパターンは、回転したログファイルと一致します。これが.1
無限にサフィックス付きのファイルを取得する理由です。
ログファイルはdelaycompress
設定で圧縮されているため圧縮されません。次の回転では圧縮されます。最初の問題(上記の2番目のパターンのためにすでに回転しているログの回転)は、すべての回転が「最初の」回転であるため、実際に圧縮を無効にします。
ログファイルが 100M より大きい場合、設定に従って循環します。これより大きいファイルがあります。上記の2番目のログファイルパターンに関連する問題のため、すべての呼び出しで回転して圧縮されません。
空のログファイルがあります。これは上記の誤ったログファイルの一致パターンのもう1つの効果です。ログファイルが回転すると、name-of-file.log.1
元のファイルにコピーされ、name-of-file.log
切り捨てられます(「空」)。また、*.log.*
構成のパターンにより、name-of-file.log.1
次回の回転時にファイルがコピーされ、元のファイルが切り捨てられます。name-of-file.log.1.1
name-of-file.log.1
これはうまく機能しますが、ログファイルモードは実際のログファイルだけでなく回転したログファイルもインポートするため、最終的に混乱します。
答え2
今週無料でlogrotateのマンページをチェックしてください!
delaycompress
Postpone compression of the previous log file to the next rota‐
tion 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 previ‐
ous log file for some time.
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.
ifempty
Rotate the log file even if it is empty, overriding the
notifempty option (ifempty is the default).