यहां एक और भिन्नता है जो मैंने कई वर्षों से सफलतापूर्वक उपयोग की है - आउटपुट कैप्चर करें और इसे केवल त्रुटि पर प्रिंट करें , ईमेल ट्रिगर करना। इसके लिए कोई अस्थायी फ़ाइलों की आवश्यकता नहीं है, और सभी आउटपुट को संरक्षित करता है । महत्वपूर्ण हिस्सा यह है 2>&1
कि STDERR को STDOUT में रीडायरेक्ट किया जाता है।
डिफ़ॉल्ट क्रोन मेलर कॉन्फ़िगरेशन के माध्यम से संपूर्ण आउटपुट भेजें:
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || echo "$OUTPUT"
समान लेकिन एक विशिष्ट पते और विषय के साथ:
(पते को पूरी Crontab फ़ाइल के लिए MAILTO = xxxx सेट करके भी बदला जा सकता है )
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || echo "$OUTPUT" | mail -s "Failed to backup" an@email.address
तुम भी त्रुटि पर कई कार्रवाई कर सकते हैं और ईमेल में जोड़ें:
1 2 * * * root OUTPUT=`flexbackup -set all 2>&1` || {echo "$OUTPUT" ; ls -ltr /backup/dir ; }
यह साधारण कमांड के लिए काम करेगा। यदि आप जटिल पाइप ( find / -type f | grep -v bla | tar something-or-other
) के साथ काम कर रहे हैं , तो आप कमांड को स्क्रिप्ट में स्थानांतरित करने और पूर्वोक्त दृष्टिकोण का उपयोग करके स्क्रिप्ट चलाने से बेहतर हैं। कारण यह है कि यदि पाइप का कोई हिस्सा STDERR को आउटपुट करता है, तो भी आपको ईमेल मिलेंगे।