GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Membungkam Sepenuhnya Cronjob Ke /dev/null/?

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 .


Linux
  1. Linux:Perbedaan Antara /dev/console , /dev/tty Dan /dev/tty0?

  2. Cara memetakan perangkat /dev/sdX dan /dev/mapper/mpathY dari perangkat /dev/dm-Z

  3. DD dari /dev/zero ke /dev/null...apa yang sebenarnya terjadi

  1. Cara mengatur ssh tanpa kata sandi dengan kunci RSA

  2. gema atau cetak /dev/stdin /dev/stdout /dev/stderr

  3. Mengapa < atau > diperlukan untuk menggunakan /dev/tcp

  1. Cara membuat kata sandi acak di linux menggunakan /dev/random

  2. Bagaimana Linux Menangani Beberapa Pemisah Jalur Berturut-turut (/home////username///file)?

  3. Seberapa Portabel /dev/stdin, /dev/stdout Dan /dev/stderr?