Apakah mungkin untuk menjalankan satu iterasi logrotate secara manual tanpa menjadwalkannya pada beberapa interval?
Apakah mungkin untuk menjalankan satu iterasi logrotate secara manual tanpa menjadwalkannya pada beberapa interval?
Jawaban:
Iya: logrotate --force $CONFIG_FILE
--force
akan merotasi file walaupun mereka tidak memenuhi kriteria yang ditentukan seperti ukuran kecil, usia, dll.
logrotate --force /etc/logrotate.d/
(hanya nama direktori)
--force
akan memaksa rotasi bahkan jika file tidak memenuhi kriteria (usia, ukuran, dll), tetapi harap pertimbangkan bahwa ini adalah satu-satunya cara untuk menemukan masalah nyata yang logrotate -d
tidak akan muncul (misalnya, saya memiliki server yang kehabisan ruang karena logrotate tidak berjalan selama berbulan-bulan ... dan terima kasih kepada --force
saya menemukan bahwa ada File exists
kesalahan. Saya secara manual menghapus file-file itu dan sekarang rotasi dengan benar bekerja lagi!
logrotate -d [your_config_file]
memanggil mode debug, memberi Anda deskripsi verbal tentang apa yang akan terjadi, tetapi membiarkan file log tidak tersentuh.
logrotate --force
dan bekerja dengan baik.
Jika Anda ingin menjalankan secara paksa direktori tunggal atau file log daemon tertentu, Anda biasanya dapat menemukan konfigurasinya /etc/logrotate.d
, dan mereka akan bekerja mandiri.
Ingatlah bahwa konfigurasi global yang ditentukan dalam /etc/logrotate.conf
tidak akan berlaku, jadi jika Anda melakukan ini, Anda harus memastikan Anda menentukan semua opsi yang Anda inginkan dalam /etc/logrotate.d/[servicename]
file konfigurasi secara khusus.
Anda dapat mencobanya -d
untuk melihat apa yang akan terjadi:
logrotate -df /etc/logrotate.d/nginx
Kemudian Anda dapat menjalankan (menggunakan nginx sebagai contoh):
logrotate -f /etc/logrotate.d/nginx
Dan log nginx saja akan diputar.
logrotate -d /etc/logrotate.conf
akan berjalan melalui file conf lain yang disertakan juga.
Cara menjalankan semua logrotate adalah:
logrotate -f /etc/logrotate.conf
yang akan menjalankan file logrotate primer, yang mencakup konfigurasi logrotate lainnya juga
Keluarkan perintah berikut, cara menjalankan logrotate yang ditentukan:
logrotate -vf /etc/logrotate.d/custom
Pilihan:
-v: tunjukkan prosesnya
-f: memaksa menjalankan
custom: pengaturan log yang ditentukan pengguna
misal: mongodb-log
# mongodb-log rotate
/data/var/log/mongodb/mongod.log {
daily
dateext
rotate 30
copytruncate
missingok
}
edit /var/lib/logrotate.status untuk mereset tanggal 'terakhir diputar' pada file log yang ingin Anda uji.
Kemudian jalankan logrotate YOUR_CONFIG_FILE
.
Atau Anda dapat menggunakan flag --force, tetapi mengedit logrotate.status memberi Anda lebih presisi atas apa yang bisa dan tidak diputar.
/var/lib/logrotate.status
file tidak ada pada Debian Squeeze.
Membuat skrip shell untuk memecahkan masalah.
http://www.ict.griffith.edu.au/anthony/software/#logrotate_one
Script ini akan menjalankan hanya file sub-konfigurasi logrotate tunggal yang ditemukan di "/etc/logrotate.d", tetapi termasuk pengaturan global dari dalam file konfigurasi global "/etc/logrotate.conf". Anda juga dapat menggunakan pilihan lain untuk mengujinya ...
Sebagai contoh...
logrotate_one -d syslog