Menurut Unix dan Linux Administrasi Handbook dan man
, logrotate memiliki pilihan untuk daily
, weekly
dan monthly
, tetapi ada cara untuk menambahkan hourly
pilihan?
Posting blog ini menyebutkan Anda dapat mengatur size 1
dan menghapus opsi waktu (misalnya:) daily
dan kemudian secara manual menelepon logrotate
dengan cron
- saya kira sesuatu seperti
logrotate -f /etc/logrotate.d/my-hourly-file
tetapi apakah ada solusi yang lebih elegan untuk memutar log setiap jam?
Jawaban:
Tergantung pada OS Anda. Beberapa (semua?) Distribusi Linux memiliki direktori
/etc/cron.hourly
tempat Anda dapat meletakkan pekerjaan cron untuk dieksekusi setiap jam.Lainnya memiliki direktori
/etc/cron.d/
. Di sana Anda dapat menempatkan cron-job yang akan dieksekusi sebagai pengguna khusus dengan pengaturan cron pada entri crontab (dan Anda harus menentukan nama pengguna).Jika Anda menggunakan salah satu dari ini alih-alih skrip rotasi log standar,
/etc/cron.daily/
Anda harus menyalin skrip itu di sana dancp /dev/null
ke posisi semula. Jika tidak maka akan diaktifkan kembali oleh pembaruan patch logrotate.Untuk rotasi per jam yang tepat, perhatikan juga bahwa
dateext
arahan tidak diatur. Jika demikian, secara default file yang diputar pertama akan mendapatkan ekstensi tanggal saat ini seperti YYYYMMDD. Kemudian, logrotate waktu kedua akan aktif dalam hari yang sama, itu hanya melewatkan rotasi bahkan jikasize
ambang telah melebihi.Alasannya adalah bahwa nama baru file yang akan diputar sudah ada, dan logrotate tidak menambahkan konten ke file lama yang ada. Misalnya pada RHEL dan CentOS,
dateext
arahan diberikan secara default di/etc/logrotate.conf
. Setelah menghapus atau mengomentari baris itu, file yang diputar hanya akan mendapatkan nomor berjalan sebagai ekstensi hingga mencapairotate
nilai. Dengan cara ini, dimungkinkan untuk melakukan beberapa rotasi sehari.sumber
Hanya dengan menambahkan jawaban Nils, jika mengubah lokasi
logrotate
skrip pada kotak Debian atau Ubuntu, mungkin lebih aman untuk digunakandpkg-divert
daripada hanya menyalin file dan menyalin/dev/null
ke posisi semula misal::sumber
Satu opsi lain akan menambahkan perintah logrotate ke daftar crontab. Maka itu akan dieksekusi untuk setiap jam.
tambahkan baris di bawah ini ke daftar crontab
sumber