Tergantung pada OS Anda. Beberapa (semua?) Distribusi Linux memiliki direktori /etc/cron.hourly
di mana Anda dapat menempatkan tugas cron untuk dieksekusi setiap jam.
Lainnya memiliki direktori /etc/cron.d/
. Di sana Anda dapat meletakkan cron-job yang akan dijalankan sebagai pengguna khusus dengan pengaturan cron biasa dari entri crontab (dan Anda harus menentukan nama pengguna).
Jika Anda menggunakan salah satu dari ini alih-alih skrip rotasi log standar di /etc/cron.daily/
Anda harus menyalin skrip itu di sana dan cp /dev/null
ke posisi semula. Jika tidak, itu akan diaktifkan kembali oleh pembaruan patch logrotate.
Untuk rotasi per jam yang tepat, perhatikan juga dateext
direktif adalah tidak mengatur. Jika demikian, secara default file yang diputar pertama akan mendapatkan ekstensi tanggal saat ini seperti YYYYMMDD. Kemudian, logrotate kedua kalinya akan aktif di hari yang sama, itu hanya melewatkan rotasi bahkan jika size
ambang telah terlampaui.
Alasannya adalah nama baru file yang akan diputar sudah ada, dan logrotate tidak menambahkan konten ke file lama yang ada. Misalnya pada RHEL dan CentOS, dateext
direktif diberikan secara default di /etc/logrotate.conf
. Setelah menghapus atau mengomentari baris tersebut, file yang diputar hanya akan mendapatkan nomor berjalan sebagai ekstensi hingga mencapai rotate
nilai. Dengan cara ini, Anda dapat melakukan beberapa rotasi dalam sehari.
Hanya untuk menambah jawaban Nils, jika mengubah lokasi logrotate
skrip pada kotak Debian atau Ubuntu, mungkin lebih aman menggunakan dpkg-divert
daripada hanya menyalin file dan menyalin /dev/null
ke posisi semula misalnya:
dpkg-divert --add --rename --divert /etc/cron.hourly/logrotate /etc/cron.daily/logrotate
Satu opsi lain adalah menambahkan perintah logrotate ke dalam daftar crontab. Kemudian akan dieksekusi setiap jam.
crontab -e
tambahkan baris di bawah ini ke dalam daftar crontab
0 * * * * /usr/sbin/logrotate /etc/logrotate.d/my-hourly-file