Я использую rsyslog, и несколько сетевых устройств отправляют свои журналы на этот сервер. Затем Rsyslog разделяет журналы каждого выходного устройства на devicename.log. Через это:
$template FILENAME,"/data/logs/%fromhost%.log"
*,local0,local1,local2,local3,local4,local5,local6,local7,uucp,user.* ?FILENAME
Затем я пытаюсь выполнить лог-ротацию этих файлов. В моем файле logrotate.conf есть следующее.
/data/logs/*.log {
daily
create 666 root root
rotate 30
missingok
notifempty
compress
postrotate
reload rsyslog >/dev/null 2>&1 || true
endscript
}
За исключением запуска задания logrotate, около половины журналов устройств перестают регистрироваться, пока я вручную не перезагружу системный журнал. Это почти как rsyslog, только не сохраняет журналы для половины устройств, пока я не перезапущу rsyslog.
Любые идеи?