Hapus file dengan logrotate

13

Apakah mungkin HANYA menghapus file log dalam direktori dengan menggunakan logrotate tanpa memutarnya? Kami memiliki aplikasi yang menghasilkan log dalam format berikut: app.log.DD_MM_YYYY. Saya tidak berhasil dengan logrotate memiliki konfigurasi berikut:

/opt/log/app/app.log.* {
         rotate 0
         missingok
         nomail
}

Bisakah log rotate melakukan ini atau haruskah saya menulis skrip dan meletakkannya di cron?

Terbaik, -Iulian

Iulian
sumber
Jika Anda tidak memerlukan log itu, mengapa tidak menonaktifkan fitur logging di aplikasi Anda?
Deeh
1
Saya minta maaf tapi saya tidak bisa menghitung itu sebagai jawaban Deeh. Untuk memberi makan rasa ingin tahu Anda, kami membutuhkan log untuk operasi yang berbeda seperti debugging, kami hanya tidak ingin menyimpannya di sana untuk membusuk.
Iulian

Jawaban:

16

Dalam hal ini Anda mungkin ingin menggunakan postrotate. Dalam contoh di bawah ini postrotate akan menghapus file yang lebih tua yang 1 hari setelah log diputar, jangan ragu untuk memodifikasinya sesuai dengan kebutuhan Anda.

/opt/log/app/app.log.* {
        missingok
        nomail
postrotate
        /usr/bin/find /opt/log/app/ -name "app.log.*" -type f -mtime +0 -exec rm {} \;
endscript
}
Deeh
sumber
3

Tujuan dari logrotate adalah untuk menjaga jumlah file log kustom pada interval waktu kustom. Saya akan menggunakan cron untuk tugas Anda. Lebih lanjut tentang apa yang dapat Anda lakukan dengan logrotate di sini: http://www.jamescoyle.net/cheat-sheets/676-logrotate-cheat-sheet

Alex
sumber
2
Harap jangan memposting jawaban hanya tautan untuk mencegah pembusukan tautan. Alih-alih, tambahkan informasi yang paling relevan dari tautan ke jawaban Anda atau sebagai alternatif, poskan tautan sebagai komentar alih-alih jawaban. Lihat ini artikel pusat bantuan untuk informasi lebih lanjut.
Sven