Saya memiliki dua kotak Debian (i386 v AMD) yang berbeda dan memiliki masalah yang sama. logrotate tidak akan memutar log saya secara otomatis. Ini berfungsi dengan baik ketika saya memaksakan secara manual suka
/usr/sbin/logrotate -f /etc/logrotate.conf
tapi itu tidak baik untukku.
Pengaturan tidak diubah (setidaknya saya tidak mengubahnya), kotak AMD adalah instalasi baru namun tidak akan melakukan pekerjaannya.
Jika Anda memperhatikan masalah yang sama, tolong bantu saya.
Pembaruan (beberapa output server):
logrotate -d
http://pastebin.com/e6AshtGq
ls -l /var/log
http://pastebin.com/Y2A4Li59
cat /etc/logrotate.conf
http://pastebin.com/1h7Uwctr
ls -l /etc/logrotate.d
http://pastebin.com/NvUAeszM
debian
logrotate
debian-squeeze
fabrik
sumber
sumber
...rsyslogd was HUPed...
tidak yakin tentang ini berarti apa-apa.cron.daily
berputar tidak akan terjadi.Jawaban:
Pastikan logrotate Anda dijalankan oleh cron.
Edit:
Dari diskusi komentar - tampaknya cron tidak berfungsi dengan benar. Saya memiliki cronjob di crontab saya tanpa pengguna tetapi ini hanya terungkap ketika saya me-restart daemon cron
Sistem ubuntu dan centos saya memiliki
/etc/cron.daily/logrotate
file yang isinya/ Etc / crontab saya memiliki baris berikut untuk menjalankan pekerjaan sehari-hari
sumber
ps -ef | grep cron| grep -v grep
? Tambahkan gema ke awal /etc/cron.daily/logrotateecho "logrotate runing" >>/tmp/logrotate.out
dan lihat apakah ia dibuat.cron
sudah berjalan dan berjalan tetapi tidak akan menjalankan pekerjaan logrotate harian. Jika saya menjalankan/etc/cron.daily/logrotate
secara manual itu memutar log saya,/tmp/logrotate.out
juga ditulis./etc/cron.daily/logrotate
jadi saya telah menambahkan-f
parameter untuk memaksa memutar namun hari ini log saya tidak diputar.Saya memiliki masalah serupa tetapi
crontab
bekerja dan untuk beberapa direktori loglogrotate
berhasil tetapi untuk beberapa tidak. Ketika saya mencoba menjalankan logrotate secara manual, saya mendapat beberapa pesan kesalahan.Semua
*.1.gz
file memiliki ukuran 0. Saya secara manual menghapus semua file yang disebutkan dalam pesan kesalahan, dijalankansudo /usr/sbin/logrotate -f /etc/logrotate.conf
lagi dan berfungsi.Saya hanya ingin berbagi solusi alternatif di sini juga, karena ini adalah hasil pencarian pertama yang muncul ketika saya mencari masalah tetapi solusi yang disarankan tidak bekerja untuk saya. Mungkin ini membantu orang lain yang berada dalam situasi yang sama dengan saya.
sumber
Saya tahu saya tahu. Utas berusia 5 tahun.
Hanya berpikir jika masih muncul cukup tinggi dalam pencarian, saya akan berkontribusi dan memberikan solusi saya untuk masalah yang saya temui. Pekerjaan logrotate saya tidak ditangani secara otomatis di salah satu server saya. Memaksa rotasi bekerja dengan baik. Saya datang dengan solusi setelah saya menjalankan perintah rotasi harian dengan tangan:
Lalu saya melihat kesalahan yang menghentikan pekerjaan logrorate dari menembak:
Ya, sesederhana itu. Saya punya dua file yang mendefinisikan log yang sama untuk diputar (iptraf dan iptraf-ng). Hanya menghapus salah satu definisi logrotate yang bertentangan untuk iptraf yang berhasil.
Masalah lain mungkin file / etc / crontab yang dirusak. Berarti periksa dua atau tiga sintaks pada file itu karena tidak memberikan output apa pun yang bisa saya temukan jika sintaks salah. Diam-diam keluar setelah validasi sintaksis gagal.
Semoga ini menghemat waktu seseorang.
sumber
OK saya punya masalah serupa.
"Log tidak diputar?" tetapi menjalankan logrotate secara manual (atau menjalankan
/etc/cron.daily
dan memutarnya dengan baik.Jadi sepertinya cron "tidak berjalan" setiap hari. Aneh. Jadi saya melihat di file log tempat cron mengeluarkan datanya dan melihat "Otentikasi token tidak lagi valid; yang baru diperlukan" untuk memperbaiki masalah tertentu, lihat di sini
sumber
Saya telah melihat ini sering terjadi seiring berjalannya waktu layanan berubah, dan opsi yang digunakan dalam logrotate telah dihapus, menyebabkan logrotate gagal setiap hari.
Untuk memberi Anda ide, perbaikan terakhir melibatkan opsi notifyempty dalam file apache logrotate tidak lagi valid, yang pada gilirannya menyebabkan logrotate untuk berhenti bersama-sama.
Meskipun hal ini telah dibahas pada satu titik, saya ingin membagikan proses yang saya lalui saat melacak masalah ini:
#/usr/sbin/logrotate -f /etc/logrotate.conf
untuk mencari kesalahan (misalnya postfix: 3 'missingok'.)File dan nomor baris yang dimaksud adalah file dalam folder logrotate.d.
# vi /etc/logrotate.d/postfix
:, dan hapus opsi yang menyebabkan masalah, dan simpan file tersebut.Ada saat-saat ketika langkah pertama hanya menghasilkan apa-apa, tetapi Anda tahu ada masalah. Karena semua ini dimulai karena file log untuk layanan tidak diputar, Anda dapat menonton proses logrotate mencari layanan spesifik untuk melihat apa yang menghentikannya dari memutar. Untuk melakukan ini, tambahkan tag verbose ke perintah logrotate Anda, dan perhatikan untuk melihat apa yang terjadi di folder itu (jika ada).
sumber
Periksa parameter konfigurasi logrotasi yang saling bertentangan !!
Saya berjuang dengan masalah ini dan saya akhirnya membaca beberapa dokumentasi tentang logrotate dengan sangat cermat, saya menemukan beberapa dokumentasi yang berguna di sini .
Saya telah menentukan parameter Ukuran dan parameter Interval Rotasi , padahal sebenarnya saya tidak menginginkan keduanya. Saya ingin rotasi saya terjadi tepat ketika mereka dijadwalkan dalam cron.
Jadi, singkirkan parameter Rotation Interval dan Size . Maka Anda akan mendapatkan rotasi setiap kali logrotate dipanggil tanpa harus memaksanya.
EDIT : OK, bahkan ini tidak sepenuhnya berfungsi! Jika file log berada di bawah ambang batas tertentu, log tidak akan diputar. Jadi ketika saya menjalankan pekerjaan cron yang diputar setiap 2 menit, itu tidak memutar log.
Anda dapat melihat informasi debug terperinci jika Anda menjalankan
logrotate -d
. Ini memberikan beberapa informasi debug yang sangat berguna.sumber