Saya menjalankan Ubuntu 14.04 LTS dan nginx pada Digital Ocean VPS dan sesekali menerima email ini tentang pekerjaan cron yang gagal:
Subyek
Tes Cron -x / usr / sbin / anacron || (cd / && run-parts --laporan /etc/cron.daily)
Badan email adalah:
/etc/cron.daily/logrotate: error: error menjalankan skrip postrotate bersama untuk '/var/log/nginx/*.log' run-parts: /etc/cron.daily/logrotate keluar dengan kode pengembalian 1
Adakah pemikiran tentang bagaimana saya bisa menyelesaikan ini?
Memperbarui:
/var/log/nginx/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 0640 www-data adm
sharedscripts
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi
endscript
postrotate
invoke-rc.d nginx rotate >/dev/null 2>&1
endscript
}
Memperbarui:
$ sudo invoke-rc.d nginx rotate
initctl: invalid command: rotate
Try `initctl --help' for more information.
/etc/logrotate.d/nginix
skrip Andainvoke-rc.d nginx rotate
gagal, coba jalankan itu sebagai pengguna yang tepat, dan tunjukkan skrip itu juga kepada kami, rekatkan output ke pertanyaan awal Anda. tks.Jawaban:
Tindakan memutar pos tampaknya tidak benar
Mencoba
Jika Anda melihat
nginx
perintah, Anda akan melihat tindakan yang akan diterimanya. Juga pesan yang Anda dapat mengatakan cekinitctl --help
jadi memuat ulang harus bekerja dan mengirim sinyal HUP ke nginx untuk memaksa membuka kembali file log.
sumber
Seperti disebutkan dalam jawaban lain, masalahnya adalah
invoke-rc.d nginx rotate
mengembalikan kesalahan yang menyatakan bahwarotate
tindakan tidak didukung. Yang menarik adalahservice nginx rotate
bekerja tanpa masalah.Dugaan saya adalah bahwa
invoke-rc.d
pembungkus tidak mendukung semua tindakan yang didukung oleh skrip init nginx yang sebenarnya.Mengubah
invoke-rc.d nginx rotate
keservice nginx rotate
harus menyelesaikan masalah.sumber
Saya tidak yakin apakah itu karena
initctl
dosis tidak mendukungrotate
opsi, dan ketika itu dihapus, tetapi Anda bukan satu-satunya yang terpengaruh oleh ini, dan ada laporan bug terbuka untuk ini pada launchpad.Seperti disebutkan oleh jawaban lain di atas & di bawah ini, Anda dapat mengedit file log nignx nignx dan mengganti baris problmatic
dengan alternatif lain yang berfungsi,
Apa pun metode yang Anda pilih, harap Anda tidak mengubah file yang dikelola oleh sebuah paket, dan setelah Anda mengubahnya, itu tidak akan diperbarui lagi dan Anda harus menyelesaikan secara manual atau menimpa dengan yang baru (yang semuanya sudah siap termasuk perbaikannya).
sumber
Bekerja untuk saya:
Diganti
postrotate invoke-rc.d nginx rotate >/dev/null 2>&1
dengan
postrotate service nginx rotate >/dev/null 2>&1
sumber
Menggantikan:
Dengan:
Tampaknya pada versi yang lebih baru dari Nginx ini berfungsi. Saya menjalankan versi 1.9.
sumber