当文件大小达到特定阈值时,不会执行旋转

当文件大小达到特定阈值时,不会执行旋转

我有以下配置/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 使用传统单位,而不是 SI 单位来表示 K、M、G 等。从字面上理解,引用源代码就是:1024 * 1024 * 1024,或者 1073741824 字节。

相关内容