Ротация не выполняется, когда размер файла достигает определенного порогового значения

Ротация не выполняется, когда размер файла достигает определенного порогового значения

У меня следующие конфигурации /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 и т. д. Это буквально означает, цитируя исходный код: 1024 * 1024 * 1024, или 1073741824 байта.

Связанный контент