ファイルサイズが特定のしきい値に達するとローテーションが実行されない

ファイルサイズが特定のしきい値に達するとローテーションが実行されない

には次の構成があります/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 バイトを意味します。

関連情報