
には次の構成があります/etc/logrotate.d/rsyslog
:
/var/log/syslog
{
rotate 7
size 1G
missingok
notifempty
delaycompress
compress
postrotate
invoke-rc.d rsyslog rotate >/dev/null
endscript
}
/var/log/syslog
私の理解では、サイズが大きくなると自動的に回転するように設定しています1G
。また、システムは 7 回の回転を保持します。
テストでは、次のことを行いました。
cat /dev/null > /var/log/syslog
base64 /dev/urandom | head -c 999999999 > /var/log/syslog
logger -s "hello"
それから私はこうしました:
ls -las /var/log/syslog*
976568 -rw-r----- 1 syslog adm 1000000072 Jul 28 19:11 /var/log/syslog
ファイルサイズが表示されていますが、1.000000728 GB
それ自体が回転しているはずではないのでしょうか?
設定を適用する際には、systemctl restart rsyslog
答え1
Logrotate は、K、M、G などに SI 単位ではなく従来の単位を使用します。これは、ソース コードから引用すると文字通り、1024 * 1024 * 1024
つまり 1073741824 バイトを意味します。