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