У меня следующие конфигурации /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 байта.