Berikut adalah variasi lain yang telah berhasil saya manfaatkan selama bertahun-tahun - menangkap keluaran dan mencetaknya hanya karena kesalahan , memicu email. Ini tidak memerlukan file temp, dan mempertahankan semua output . Bagian yang penting adalah 2>&1
yang mengarahkan ulang STDERR ke STDOUT.
Kirim seluruh output melalui konfigurasi cron mailer default:
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || echo "$OUTPUT"
Sama tetapi dengan alamat dan subjek tertentu:
(alamat juga dapat diubah dengan mengatur MAILTO = xxxx untuk seluruh file crontab)
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || echo "$OUTPUT" | mail -s "Failed to backup" an@email.address
Anda bahkan dapat melakukan beberapa tindakan saat terjadi kesalahan dan menambahkan ke email:
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || {echo "$OUTPUT" ; ls -ltr /backup/dir ; }
Ini akan berfungsi untuk perintah sederhana. Jika Anda berurusan dengan pipa kompleks ( find / -type f | grep -v bla | tar something-or-other
), maka Anda lebih baik memindahkan perintah ke skrip dan menjalankan skrip menggunakan pendekatan yang disebutkan di atas. Alasannya adalah bahwa jika ada bagian dari pipa yang menghasilkan STDERR, Anda masih akan mendapatkan email.