Kita semua tahu cara yang tepat untuk menangani output dari pekerjaan cron adalah mengarahkannya ke file:
0 * * * * /bin/date >> /var/log/date.log 2>&1
Namun, terkadang admin malas, pelupa, atau tidak tahu dan tidak memasukkan pengalihan itu; dalam hal ini output dari pekerjaan akan dikirim ke $ MAILTO atau pengguna atau root yang memiliki. Pada beberapa kotak yang saya kelola, surat dinonaktifkan, jadi keluaran ini masuk ke lubang hitam. Yang saya ingin tahu adalah, apakah ada cara untuk memberitahu cron untuk mengambil output pekerjaan dan bukannya mengirimkannya, membuangnya ke file log catch-all di suatu tempat? Saya menggunakan Ubuntu (8.04 tetapi bermigrasi ke 9.04). Ada petunjuk tentang solusi seperti ini dalam hasil Google acak ini , tetapi saya pikir OP mungkin bingung tentang output cron vs output dari pekerjaan cron.
Saya terbuka untuk solusi yang melibatkan sedikit skrip atau peretasan, tetapi idealnya ini adalah bit konfigurasi yang bisa saya atur di suatu tempat. Saya tidak melihat petunjuk apa pun man cron
. Terima kasih!
root: /var/log/cron.log
tidak bekerja? feep.net/sendmail/tutorial/intro/aliases.htmlSaya tidak berpikir apa yang Anda minta sebenarnya mungkin dengan cron Ubuntu (atau lainnya).
Selain dari ide geekmonkey, Anda juga bisa menetapkan $ MAILTO ke akun lokal dan merutekan output melalui procmail.
sumber
Tidak pernah mendengar pengaturan cron seperti itu, jadi saya akan mengambil rute scripting.
Buat pekerjaan cron untuk patroli / var / spool / cron / *, dan tambahkan pengalihan ke pekerjaan apa pun yang tidak memilikinya.
sumber
Pilihan lain adalah membuat skrip shell bernama cron_wrapper atau semacamnya, dan lakukan saja seperti ini:
Kemudian, semua crontab Anda hanya perlu sesuatu seperti ini:
Catatan saya belum menguji kode ini, itu hanya sebuah ide.
sumber
Saya tidak tahu apa itu "cron standar". Ada banyak daemon cron, distro yang berbeda menggunakan yang berbeda. Cron Vixie paling banyak digunakan, jadi mungkin itu yang Anda maksud. Tetapi pada beberapa distro, itu tidak akan menjadi default.
Saya telah mengambil alih pengembangan Dillon's cron (dcron), yang merupakan default pada Arch Linux. Distro lain juga menggunakannya, tapi saya tidak tahu apakah itu default di tempat lain. dcron memiliki opsi doa
-M
untuk menentukan bahwa Anda ingin menggunakan skrip khusus alih-alih sendmail. Script dipanggil tanpa argumen, dan dengan beberapa header email dan&>
output dari setiap cronjobs sebagai stdin. (Jika tidak ada&>
output, skrip tidak dipanggil.)sumber
kenapa tidak kita atur MAILTO = "" di crontab pengguna tertentu. Ini akan menonaktifkan pencatatan pesan email di / var / spool / mail /
sumber