Ada cara untuk melakukan ini?
Ada cara untuk melakukan ini?
Jawaban:
Di file logrotate.conf Anda (atau file logrotate.d yang sama), ubah baris yang bertuliskan "
rotate 10
(nomor Anda mungkin berbeda) ke nomor yang lebih besar. Itu akan memerintahkannya untuk menyimpan log selama berhari-hari. Anda bisa membuatnya 36500, yang akan bertahan selama 100 tahun.
Saya telah mencari ini untuk melakukan rotasi backup database saya setiap hari, mingguan dan bulanan; jadi saya memutar file setiap hari tetapi menyimpan file untuk melakukan rotasi mingguan, dan sama untuk rotasi tahunan.
Gunakan opsi salin. Dari manual:
copy
salin Buat salinan file log, tetapi jangan ubah aslinya sama sekali. Opsi ini dapat digunakan, misalnya, untuk membuat snapshot dari file log saat ini, atau ketika beberapa utilitas lain perlu memotong atau mengurai file. Ketika opsi ini digunakan, opsi buat tidak akan berpengaruh, karena file log lama tetap di tempatnya.
Menyisihkan titik bahwa rotasi melibatkan penghapusan ... ;-)
Sepertinya Anda cukup menambahkan kata 'salin' ke file yang sesuai (kemungkinan di /etc/logrotate.d). Misalnya, skrip logout apache2 akan terlihat seperti ini:
/var/log/apache2/*.log { mingguan missingok putar 52 kompres delaycompress pemberitahuan salinan skrip yang dibagikan postrotate jika [-f "`. / etc / apache2 / envvars; echo $ {APACHE_PID_FILE: - / var / run / apache2.pid} `"]; kemudian /etc/init.d/apache2 reload> / dev / null fi naskah akhir }
Cobalah itu, dan lihat apakah itu sesuai dengan yang Anda inginkan.