Я использую logrotate, чтобы вращать журналы доступа, ошибок и перезаписи Apache. Мой конфигурационный файл выглядит так:
/apache/*log {
compress
dateext
rotate 365
size=+300M
olddir /log/old/apache
notifempty
missingok
lastaction
/bin/apache reload
endscript
}
Моя проблема в том, что всякий раз, когда происходит ротация, Apache должен быть перезагружен, потому что Apache больше не пишет в только что повернутый лог-файл. Есть ли способ избежать перезагрузки Apache каждый раз, когда logrotate выполняет ротацию?
lastaction echo "" | /apache/*log endscript
файловый дескриптор не "потерян"?logrotate
док говорит: «Обратите внимание, что между копированием файла и его усечением очень маленький промежуток времени, поэтому некоторые данные журналов могут быть потеряны».copytruncate
?Я рекомендую вам использовать http://cronolog.org/
Вот как я это использую:
источник