Saya memiliki skrip yang perlu dijalankan setiap menit. Masalahnya adalah bahwa cron masuk ke /var/log/syslog
setiap kali dijalankan. Saya akhirnya melihat sesuatu seperti ini berulang-ulang di /var/log/syslog
:
Jun 25 00:56:01 myhostname /USR/SBIN/CRON[1144]: (root) CMD (php /path/to/script.php > /dev/null)
Saya menggunakan Debian.
Pertanyaan saya adalah: Apakah ada cara saya dapat memberitahu cron untuk tidak menulis informasi ini ke syslog setiap saat?
Jawaban:
Anda dapat mengirim output cron ke fasilitas log terpisah, tambahkan yang berikut ke
/etc/syslog.conf
file Anda :Ingatlah untuk menambahkan
/var/log/cron
ke Anda/etc/logrotate.d/syslog
untuk memastikan itu diputar, misalnyasumber
Baik,
Solusi untuk pertanyaan saya adalah:
perubahan
untuk
di dalam
/etc/syslog.conf
dan kemudian restart syslogSaya juga memiliki cron yang dikirim
/var/log/cron.log
seperti yang disarankan oleh Dave Cheney dan menempelkan logrotate padanya. Saran saya dengan saran Daves optimal untuk situasi saya karena:/var/log/syslog
menjadi berantakan dengan pesan cron/var/log/cron.log
agar tidak terlalu besar.sumber
rsyslog
dalam Debian 8.0 Jessie, jadi itu yang/etc/rsyslog.conf
akan diedit. By the way, string yang akan ditambahkan sudah ada secara default, Anda hanya perlu menghapus komentar itu (baris 63). Dan/var/log/cron.log
sudah ada di/etc/logrotate.d/syslog
, sama seperti pengelola paket telah membaca utas ini.Is there any way I can tell cron not write this information to syslog every time
. Ini bukan jawabannya.Ubah / etc / default / cron
Secara default garis EXTRA_OPTS adalah ""
sumber
Di Ubuntu 14.04.5 (dan kemungkinan di tempat lain) ada rsyslogd bukan syslogd. TranslucentCloud mengisyaratkan hal ini dengan Debian Jessie, tetapi solusi yang sama (tetapi mengubah rsyslog.conf alih-alih syslogd.conf) tampaknya tidak berfungsi di Ubuntu.
Tampaknya nilai-nilai yang ditetapkan di /etc/rsyslog.d/50-default.conf akan benar-benar diutamakan daripada hal-hal yang diatur di /etc/rsyslog.conf, jadi lebih baik untuk membuat perubahan di sana dan kemudian restart rsyslog dan cron. Kalau tidak, Anda masih akan berakhir dengan perilaku default cron logging ke syslog, ditambah cron logging ke cronlog (tetapi tidak secara eksklusif).
Beberapa baris pertama di /etc/rsyslog.d/50-default.conf saya:
Dan voila!
sumber
Saya baru saja menyelesaikan ini dengan cara yang berbeda, tetapi tujuan saya sedikit berbeda. Saya ingin membuang entri log cron yang dihasilkan saat atrun menyala sehingga hard drive saya dapat tidur dan tidak terbangun setiap 5 menit.
Anda dapat memiliki target acara log di syslog.conf menjadi perintah shell dengan awalan dengan pipa, dan jadi saya menggunakan grep untuk membuang yang tidak saya inginkan. Begitu:
Saya belum menyelidiki tetapi saya yakin ini mungkin untuk mengirim entri log tersebut ke target lain jika masih diinginkan.
sumber
Sebenarnya, solusi 'terbaik' (orang bisa mengklaim) adalah kombinasi dari apa yang disarankan @DaveCheney dan apa yang akhirnya dilakukan pengguna7321 , ditambah tindakan ketiga yang akan saya rekomendasikan:
Di Anda
/etc/syslog.conf
, kombinasi saran ini mengubah sesuatu seperti yang berikut:ke:
Dan jangan lupa untuk memaksa memuat ulang (atau memulai ulang) layanan cron dan syslogd, misalnya menggunakan:
Catatan: Ini juga berfungsi dengan rsyslogd.
sumber