Di Ubuntu-Desktop dan di server-debian, saya memiliki skrip yang perlu dijalankan setiap menit (skrip yang memanggil menit-menit ruang browser online saya ).
Masalahnya adalah bahwa pada debian derivate cron melakukan logging ke /var/log/syslog
setiap kali dijalankan. Saya akhirnya melihat mengulangi pesan itu dieksekusi berulang-ulang di /var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
Saya tahu bahwa untuk menekan output dari suatu program saya dapat mengarahkan kembali ke /dev/null
, misalnya untuk menyembunyikan semua pesan kesalahan dan peringatan dari suatu program saya dapat membuat baris di crontab seperti ini
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
Tapi saya ingin menjalankan cronjob dan memastikan bahwa semua output atau kesalahan yang dihasilkan disalurkan ke NULL, sehingga tidak menghasilkan pesan apa pun di syslog dan tidak menghasilkan email apa pun
EDIT:
ada solusi untuk mengarahkan ulang cron-log ke dalam log terpisah seperti yang diusulkan di sini dengan mengubah/etc/syslog.conf
Tetapi kekurangannya adalah, maka SEMUA output dari semua cronjobs diarahkan.
Dapatkah saya entah bagaimana hanya mengarahkan cronjob tunggal ke file log yang terpisah? Lebih disukai dapat dikonfigurasi di dalam cron.hourly
file itu sendiri.
MAILTO=""
karena baris pertama crontab akan mencegah email apa pun. Juga, gunakan trifecta penuh pada baris perintah Anda jika Anda menekan semua output .. Semua 3 jenis diarahkan oleh string ini: >/dev/null 2>&1
- Tentu saja, Anda dapat memiliki skrip termasuk menulis berkala ke log terpisah.
MAILTO=""
di awal file cron. Ini akan menekan semua email. Dan saya belum pernah mendengar tentang daemon cron yang mengirimkan output pekerjaan ke syslog (tapi saya rasa itu mungkin).