Є спосіб це зробити?
Є спосіб це зробити?
Відповіді:
У своєму logrotate.conf (або еквівалентному файлі logrotate.d) змініть рядок із написом "
rotate 10
(ваш номер може бути різним) до більшої кількості. Це дозволить зберегти стільки днів журналів. Ви можете зробити це 36500, що прослужило б вам 100 років.
Я шукав це для того, щоб робити обертання резервних копій моєї бази даних щодня, щотижня та щомісяця; тому я обертаю файл щодня, але зберігаю файл для щотижневого обертання, і це саме для щорічного обертання.
Використовуйте опцію копіювання. З посібника:
copy
copy Зробіть копію файлу журналу, але не змінюйте оригінал. Ця опція може бути використана, наприклад, для того, щоб зробити знімок поточного файлу журналу, або коли якась інша утиліта повинна усікати або розбирати файл. Якщо використовується ця опція, опція створення не матиме ефекту, оскільки старий файл журналу залишається на місці.
Відміняючи точку, що обертання включає видалення ... ;-)
Схоже, ви можете просто додати слово "копіювати" у відповідний файл (ймовірно, у /etc/logrotate.d). Наприклад, сценарій apache2 logrotate виглядатиме так:
/var/log/apache2/*.log { щотижня пропуск обертати 52 компрес затримка компресу notifempty копія спільні сценарії стропати if [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; потім /etc/init.d/apache2 reload> / dev / null фі закінчення }
Спробуйте це і подивіться, чи це робить те, що ви хочете.