Misalnya, saya bisa mencatat stderr
satu skrip dengan cara ini:
* * * * * run_script.sh > /var/log.txt 2>&1
Tapi saya ingin mencatat stderr
semua skrip di crontab saya. Saya dapat menambahkan > /var/log.txt 2>&1
ke semua skrip, tetapi tidak baik jika saya memiliki ratusan skrip cron
. Apakah ada cara lain yang lebih sederhana untuk melakukan ini?
sumber
Karena menggunakan surat lokal, Anda benar-benar tidak perlu mengatur apa pun, atau mungkin hanya menginstal mailx jika belum ada di sini. Cron akan mengirimkan output kepada Anda, Anda dapat menyimpan email dalam file dan melakukan banyak hal dari sana. Mencoba mengubah cara cron bekerja agar sesuai dengan kebutuhan Anda bukanlah cara yang tepat. Jika Anda tidak berpikir demikian, tambal dan pasang kembali cron, sebut saja my_cron dan gunakan sebagai ganti cron. Dan bersiaplah untuk akhirnya memperbarui my_cron Anda dan membangunnya kembali sesering mungkin.
Tambahkan ini di awal semua skrip Anda untuk mencatat semuanya dan berhenti pada kesalahan pertama
sumber
> /var/log/YOUR_LOG_FILE 2>&1
yaitu, redirect stdout pertama ke file dan hanya kemudian redirect stderr ke stdout (yang sekarang menunjuk ke file).Skrip Ryan Ye di /programming//a/7145618/20774 juga berguna untuk ini, meskipun ia menggunakan stdout dan stderr.
sumber