Mengapa cron memerlukan MTA untuk logging? Apakah ada keuntungan khusus untuk ini? Mengapa tidak bisa membuat file log seperti kebanyakan utilitas lain?
networking
cron
logs
email
Nikhil
sumber
sumber
Jawaban:
Pertimbangkan bahwa cara tradisional "standar" untuk mencatat data adalah syslog , di mana metadata yang termasuk dalam pesan adalah "kode fasilitas" dan tingkat prioritas. Kode fasilitas dapat digunakan untuk memisahkan aliran log dari layanan yang berbeda sehingga mereka dapat dipecah menjadi file log yang berbeda, dll. (Walaupun kode fasilitas agak terbatas karena mereka telah memperbaiki makna tradisional.)
Apa yang tidak dimiliki syslog, adalah cara untuk memisahkan pesan untuk atau dari pengguna yang berbeda, dan itu adalah sesuatu yang
cron
dibutuhkan pada sistem multi-pengguna tradisional. Tidak ada gunanya mengumpulkan pesan dari semua pekerjaan cron pengguna ke file log umum di mana hanya administrator sistem yang dapat melihatnya. Di sisi lain, email secara alami menyediakan untuk mengirim pesan ke pengguna yang berbeda, jadi ini adalah pilihan yang logis di sini. Alternatifnya adalah bagi cron untuk melakukan pekerjaan secara manual, dan untuk membuat file log ke direktori home masing-masing pengguna, tetapi sistem multi-user tradisional Unix akan dianggap memiliki MTA yang berfungsi, jadi mengimplementasikannya dalam cron akan menjadi sebagian besar latihan yang sia-sia.Pada sistem modern, tentu saja ada pilihan alternatif.
sumber
Saya berasumsi bahwa dengan "logging", Anda berarti menyimpan output aktual dari pekerjaan. The berjalan pekerjaan sudah dicatat di log cron di
/var/cron/log
(jalan mungkin berbeda antara sistem). Tidak diperlukan MTA untuk log ini.Pekerjaan cron dijalankan sebagai pengguna yang bagian dari pekerjaannya adalah crontab.
Dalam kasus umum, tidak ada jaminan bahwa pengguna ini dapat membuat file pada sistem (pengguna mungkin bukan pengguna interaktif), terutama tidak di bawah
/var
hierarki tempat log biasanya dibuat. Karena itu, cara paling aman untuk memberi tahu pengguna tentang kesalahan dan keluaran lain dari suatu pekerjaan adalah mengumpulkannya dan mengirimkannya melalui email ke pengguna. Ini juga akan memungkinkan pengguna untuk mengatur pengalihan email agar akun dapat melihat misalnya kesalahan di lokasi pilihan mereka.Jika pengguna ingin menyimpan hasil pekerjaan ke file, mereka dapat melakukannya dengan pengalihan sederhana di crontab:
Ini akan berjalan
"$HOME/scripts/myscript"
setiap jam kedua, pada jam tersebut, dan akan menyimpan semua output"$HOME/logs/myscript.log"
. Tidak ada email yang akan dibuat dengan menjalankan pekerjaan ini karena semua output dialihkan. Tanpa itu2>&1
, pesan kesalahan masih akan dikirim melalui email.Ini memungkinkan pengguna untuk memilih kemana output pergi.
sumber