Solusi 1:
Tanpa perubahan pada proses Anda, logrotate sendiri 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 memutar semuanya satu per satu, yang jelas BUKAN yang Anda inginkan.
Namun, Anda dapat membuatnya berfungsi seperti yang Anda gambarkan selama cadangan terbaru dibuat tanpa stempel tanggal. Jika Anda membuat cadangan proses membuat /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 singkat opsi di sini:
rotate 5
-- pertahankan 5 putaran sebelum menghapusnocompress
-- jangan kompres file setelah diputardateext
-- gunakan tanggal sebagai ekstensi rotasi alih-alih menambah angkadateformat _%Y-%m-%d
-- atur format ekstensi tanggal yang ingin Anda gunakanextension .tar.gz
-- buat.tar.gz
datang setelah ekstensi rotasimissingok
-- jika file yang ingin kita putar tidak ada, jangan khawatir dan lanjutkan (defaultnya adalah membuat kesalahan)
Semoga ini bisa membantu!
Solusi 2:
Anda tidak harus menggunakan logrotate untuk melakukannya. Cukup gunakan perintah seperti ini:
ls -1 /root/backup_* | sort -r | tail -n +6 | xargs rm > /dev/null 2>&1
Perintah ini akan meninggalkan 5 file terbaru dan menghapus sisanya (jika ada). Anda dapat menggunakannya dalam tugas cron.
Solusi 3:
Logrotate memutar file, jadi jawabannya adalah ya - mungkin, dan jika tidak ada izin yang memadai maka letakkan di / backup atau sesuatu. Periksa grup dan pengguna apa yang dimiliki log yang diputar :-).
Ada opsi untuk kompresi di logrotate, jadi jika "compress" TIDAK dikonfigurasi - maka itu tidak akan dicoba. Juga dalam kasus Anda, opsi "putar 5".
Lihat di /etc/logrotate.d (atau di mana pun disimpan di sistem Anda)