Перейти к основному содержанию

logrotate не удаляет старые логи

Linux

Век живи, век учись. Неожиданно обнаружил, что logrotate не удаляет старые файлы.

К примеру, есть конфигурация для ротации логов nginx:

/var/log/nginx/*.log {
       daily
       missingok
       rotate 30
       compress
       delaycompress
       notifempty
       create 640 nginx adm
       sharedscripts
       postrotate
               if [ -f /var/run/nginx.pid ]; then
                       kill -USR1 `cat /var/run/nginx.pid`
               fi
       endscript
}

У нас будут ротироваться логи nginx, будет храниться 30 файлов, а последний будет удаляться. Внимание: "последний", а не последний и все что старше.

К примеру, вы хотите хранить логи только 7 дней, изменяете конфиг на:

/var/log/nginx/*.log {
       daily
       missingok
       rotate 7
       compress
       delaycompress
       notifempty
       create 640 nginx adm
       sharedscripts
       postrotate
               if [ -f /var/run/nginx.pid ]; then
                       kill -USR1 `cat /var/run/nginx.pid`
               fi
       endscript
}

Отлично, при ротации у вас удалится восьмой файл, а девятый, десятый и т.д. до тридцатого файла останутся и ничего с ними не произойдёт.

Казалось бы, есть опция maxage 7,  однако, проблема та же. Опция касается только ротируемых файлов, а те, что не попадают в диапазон, удаляться не будут.

Что делать? Удалять вручную:

/var/log/nginx/*.log {
       daily
       missingok
       rotate 7
       compress
       delaycompress
       notifempty
       create 640 nginx adm
       sharedscripts
       postrotate
               if [ -f /var/run/nginx.pid ]; then
                       kill -USR1 `cat /var/run/nginx.pid`
               fi
               find /var/log/nginx -type f -name "*.gz" -mtime +7 -delete
       endscript
}

Теги

 

Похожие материалы

Резервное копирование Atlassian JIRA через GUI

Резервную копию Atlassian JIRA можно сделать в Администрирование > Система > Импорт и Экспорт > Резервное копирование. Здесь вы сможете сделать резервное копирование содержимого базы данных в доступном формате XML.

Теги

Bitvise SSH Server для Windows

Bitvise SSH Server (WinSSHD) — SSH-сервер, разработанный специально для Windows. Позволяет на Windows машине организовать сервер Secure Shell Handling 2 (SSH2) и Secure FTP (SFTP). Отличается большим количеством настроек. Бесплатно для частного использования при выборе версии Personal Edition, но с ограничениями.

Haproxy на Ubuntu 20.04 LTS

Установим и настроим балансировщик haproxy на Ubuntu 20.04 LTS. Балансировать будем в режиме roundrobin порт TCP 25 на порты localhost TCP 26, 27, 28, 29, 30. На этих портах работает postfix в режиме multi-instance, сделаем единый 25 порт, который будет балансировать нагрузку между экземплярами почтового сервера.

Теги