Di Ubuntu-Desktop dan di server debian saya, saya memiliki skrip yang perlu dijalankan setiap menit (skrip yang memanggil menit dari game browser online space saya).
Masalahnya adalah pada turunan debian cron masuk ke /var/log/syslog
setiap kali dijalankan. Saya akhirnya melihat pesan berulang yang 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 keluaran suatu program, saya dapat mengarahkannya ke /dev/null
, misalnya untuk menyembunyikan semua pesan error dan warning dari suatu program saya bisa membuat baris di crontab seperti ini
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
Tetapi saya ingin menjalankan cronjob dan memastikan bahwa semua keluaran 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 mengalihkan cron-log ke log terpisah seperti yang diusulkan di sini dengan mengubah /etc/syslog.conf
Tetapi kekurangannya adalah, maka SEMUA output dari semua cronjobs dialihkan.
Bisakah saya entah bagaimana hanya mengarahkan satu cronjob ke file log terpisah? Lebih disukai dapat dikonfigurasi di dalam cron.hourly
file itu sendiri.
Jawaban yang Diterima:
Jadikan baris ini:
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
Ini akan menangkap STDOUT (1) dan STDERR (2) dan mengirimkannya ke /dev/null
.
MAILTO
Anda juga dapat menonaktifkan email dengan menyetel lalu menyetel ulang MAILTO=""
yang akan menonaktifkan pengiriman email apa pun.
Contoh
MAILTO=""
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
MAILTO="[email protected]"
* * * * * root /usr/local/sbin/myothercommand.sh
Pesan tambahan
Sering kali Anda akan mendapatkan jenis pesan berikut di /var/log/syslog
:
Nov 11 08:17:01 manny CRON[28381]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Ini hanyalah pemberitahuan melalui cron bahwa direktori cronjobs telah dieksekusi. Pesan ini tidak ada hubungannya langsung dengan pekerjaan ini, melainkan berasal dari crond
daemon secara langsung. Sebenarnya tidak ada yang dapat Anda lakukan tentang ini, dan saya akan mendorong Anda untuk tidak menonaktifkan ini, karena kemungkinan besar itu adalah satu-satunya jendela yang Anda miliki untuk menjalankan crond
melalui log.
Jika mereka sangat mengganggu Anda, Anda selalu dapat mengarahkannya ke file log alternatif untuk mengeluarkannya dari /var/log/syslog
Anda file, melalui /etc/syslog.conf
file konfigurasi untuk syslog
.