![ファイルサイズが特定のしきい値に達するとローテーションが実行されない](https://rvso.com/image/768934/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B5%E3%82%A4%E3%82%BA%E3%81%8C%E7%89%B9%E5%AE%9A%E3%81%AE%E3%81%97%E3%81%8D%E3%81%84%E5%80%A4%E3%81%AB%E9%81%94%E3%81%99%E3%82%8B%E3%81%A8%E3%83%AD%E3%83%BC%E3%83%86%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%81%8C%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84.png)
には次の構成があります/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 バイトを意味します。