Tanpa perubahan pada proses Anda, logrotate dengan sendirinya tidak akan melakukan apa yang Anda cari di sini. Masalah utama di sini adalah, sementara logrotate dapat mengambil wildcard, itu tidak akan memperlakukan file sebagai satu jika Anda melakukannya dan sebaliknya akan mencoba untuk memutar semuanya secara individual, yang jelas BUKAN apa yang Anda inginkan.
Namun, Anda dapat membuatnya berfungsi seperti yang Anda gambarkan selama cadangan terbaru dibuat tanpa cap tanggal. Jika Anda membuat cadangan proses /root/backup.tar.gz
misalnya, Anda dapat menggunakan konfigurasi logrotate berikut:
/root/backup.tar.gz {
rotate 5
nocompress
dateext
dateformat _%Y-%m-%d
extension .tar.gz
missingok
}
Ikhtisar cepat opsi di sini:
rotate 5
- pertahankan 5 rotasi sebelum menghapus
nocompress
- jangan kompres file setelah diputar
dateext
- gunakan tanggal sebagai ekstensi rotasi alih-alih angka yang bertambah
dateformat _%Y-%m-%d
- mengatur format ekstensi tanggal yang ingin Anda gunakan
extension .tar.gz
- buat yang .tar.gz
datang setelah ekstensi rotasi
missingok
- jika file yang ingin kita putar tidak ada, jangan khawatir dan lanjutkan (defaultnya adalah membuang kesalahan)
Semoga ini membantu!
Anda tidak harus menggunakan logrotate untuk melakukannya. Cukup gunakan perintah seperti ini:
Perintah ini akan meninggalkan 5 file terbaru dan menghapus sisanya (jika ada). Anda bisa menggunakannya dalam pekerjaan cron.
sumber
Saya baru saja mengalami situasi yang sama. Logrotate kedengarannya sangat keren tetapi tidak berhasil bagi saya pada 100% karena tidak cocok data dan nama file.
Jadi, untuk menghindari kebingungan, saya memutuskan untuk memasukkan baris berikut untuk dieksekusi setelah membuat cadangan saya saat ini untuk menjaga 5 cadangan terakhir.
Log saya adalah:
Baris baru ke skrip cadangan saya (berdasarkan komentar di atas)
Salam,
sumber
Anda dapat memutarnya secara manual.
Sekarang untuk memasukkan data ke log, lakukan saja
sumber