Моя цель состоит в том, чтобы поддержать ценность 4 дней файлов журнала так, чтобы в пятый день, zip-файл со всеми четырьмя файлами журнала был создан. Эти четыре файла журнала, созданные до сих пор, удалены.
Это - мой logrotate.conf
:
/home/ubuntu/logs/server.log {
daily
missingok
rotate 5
compress
create
dateext
dateyesterday
dateformat .%Y-%m-%d
extension .gz
}
У меня есть a crontab
запись как:
2 0 * * * /usr/sbin/logrotate /home/ubuntu/logrotate.conf --state /home/ubuntu/logrotate.state
Я вижу zip-файл в течение пятого дня наряду с пустыми файлами предыдущих четырех дней и еще четыре zip-файла пустых файлов.
Не rotate 5
и compress
предполагаемый означать, что, удалите предыдущие 4 файла после сжатия их в один архив и zip?
rotate
и compress
независимы. compress
сжатия каждый повернутый файл журнала, rotate
наборы, сколько повернутых файлов журнала для хранения. Используя их вместе не означает, что повернутые файлы журнала объединены и сжаты.
То, что Вы могли сделать, использовать a post-rotate
сценарий как так:
zcat /home/ubuntu/logs/server.log.*.gz |
gzip | sponge /home/ubuntu/logs/server.log.$(date -d "now - 5 days" +%Y-%m-%d).gz
(Используя sponge
от moreutils
перезаписывать последний файл журнала)
Тем не менее extension .gz
бесполезно, если Ваши файлы журнала на самом деле не имеют a .gz
расширение.