マニュアルから:
各構成ファイルはグローバルオプションを設定し(ローカル定義はグローバルオプションをオーバーライドし、その後の定義は以前の定義をオーバーライドします)、回転するログファイルを指定できます。
定義が正しく理解されると、/path2/dir1/.log
最初のブロックで設定されたオプションは終了ブロック設定によって無視されます。その中には多くのディレクトリがあり/path2/
、それらを個別に作成したくありません。
/path1/*/*.log
/path2/*/*.log
/path3/*/*.log
/path4/*/*.log
/path5/*/*.log
{
size 100k
rotate 10
compress
dateext
postrotate
service rsyslog restart >/dev/null 2>&1 || true
endscript
}
/path3/dir1/*.log
{
size 200k
rotate 50
compress
dateext
postrotate
service rsyslog restart >/dev/null 2>&1 || true
endscript
}
私はテストを実行するときに私の理解を信頼していません。このテストでは、この問題はdir1
最初のオプションセットによって処理され、次に2番目のオプションセットによって処理されるようです。
logrotate -d mylogconf 2>&1 | less
reading config file mylogconf
Allocating hash table for state file, size 15360 B
Handling 3 logs
rotating pattern: /path1/*/*.txt
after 1 days (360 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.
rotating pattern: /path2/*/*.txt
/path3/*/*.txt
153600 bytes (40 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.
rotating pattern: /path3/dir1/*.txt
204800 bytes (50 rotations)
empty log files are not rotated, old logs are removed
No logs found. Rotation not needed.
私の考えが正しいなら、私のconfファイルは次のようになるはずです。
/path1/*/*.log
/path2/*/*.log
/path3/dir2/*.log
/path3/dir3/*.log
/path3/dir4/*.log
{
size 100k
rotate 4
}
/path3/dir1/*.log
{
size 200k
rotate 50
}