Есть способ сделать это?
Есть способ сделать это?
Ответы:
В файле logrotate.conf (или в эквивалентном файле logrotate.d) измените строку с надписью «
rotate 10
(ваш номер может отличаться) на большее число. Это скажет это, чтобы сохранить то много дней журналов. Вы можете сделать это 36500, что будет длиться 100 лет.
Я искал это для того, чтобы чередовать резервные копии моей базы данных ежедневно, еженедельно и ежемесячно; поэтому я чередую файл ежедневно, но сохраняю файл для еженедельной ротации, и то же самое для годовой ротации.
Используйте опцию копирования. Из руководства:
copy
copy Сделайте копию файла журнала, но не меняйте оригинал. Эту опцию можно использовать, например, для создания снимка текущего файла журнала или когда какой-либо другой утилите необходимо усечь или проанализировать файл. Когда эта опция используется, опция создания не будет иметь никакого эффекта, так как старый файл журнала остается на месте.
Отложив точку, что вращение включает в себя удаление ... ;-)
Похоже, вы можете просто добавить слово «copy» в соответствующий файл (скорее всего, в /etc/logrotate.d). Например, скрипт apro2 logrotate будет выглядеть так:
/var/log/apache2/*.log { еженедельно missingok повернуть 52 компресс delaycompress notifempty копия sharedscripts postrotate if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; тогда /etc/init.d/apache2 reload> / dev / null фи endscript }
Попробуйте, и посмотрите, будет ли это то, что вы хотите.