logrotate еженедельная архивация опустошает ежедневные файлы

Моя цель состоит в том, чтобы поддержать ценность 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?

0
задан 5 March 2018 в 03:46

1 ответ

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 расширение.

0
ответ дан 30 October 2019 в 08:04

Другие вопросы по тегам:

Похожие вопросы: