Во многих дистрибутивах это должно работать через logrotate, который вызывается из cron или системного таймера каждый день. Logrotate ищет его конфигурацию, например, в /etc/logrotate.d
. Например, в Debian вы найдете /etc/logrotate.d/rsyslog
, который ротирует/var/log/messages
(и множество других лог-файлов ), вот выдержка:
/var/log/messages
{
rotate 4
weekly
missingok
notifempty
compress
delaycompress
sharedscripts
postrotate
/usr/lib/rsyslog/rsyslog-rotate
endscript
}
После ротации файлов он сообщает rsyslog закрыть старый файл журнала (, что вы и сделали, перезапустив rsyslog )запустив /usr/lib/rsyslog/rsyslog-rotate
, который отправляет SIGHUP
в rsyslogd. Демон закроет файлы, когда получит SIGHUP
без перезапуска; см. раздел «Сигналы» в rsyslogd (8).