सवाल एक क्रोनबॉज ईमेल विषय कैसे संशोधित करें


मैं Hostmonster.com पर अपनी होस्टिंग से आधा दर्जन अलग क्रॉन नौकरियां चला रहा हूं। जब एक cronjob निष्पादित किया गया है मुझे स्क्रिप्ट के आउटपुट के साथ एक ईमेल प्राप्त होता है।

ईमेल के प्रारूप में आता है:

से: क्रोन डेमन
विषय: क्रोन / रैमडिस्क / बिन / php5 -c /home5/username/scheduled/optimize_mysql.bash

इसके साथ समस्या यह है कि ईमेल का विषय यह पढ़ने में बहुत मुश्किल बनाता है कि ईमेल किस क्रोनबॉज से संबंधित है।

क्या cronjob ईमेल के विषय को संशोधित करने का कोई तरीका है ताकि इसे पढ़ना आसान हो?

उदाहरण के लिए:

से: क्रोन डेमन
विषय: MySQL डेटाबेस अनुकूलित करें

43
2017-08-20 06:58


मूल




जवाब:


मेरे सिस्टम (अधिकांश डेबियन) पर सभी आउटपुट, एक स्क्रिप्ट / प्रोग्राम से क्रॉन्टाब-एंट्री के रूप में बुलाया जाता है, ईमेल द्वारा भेजा जाता है account@localhost जिन्होंने क्रॉन की शुरुआत की थी। इन ईमेल में आपका विषय है।

अगर आप एक ईमेल प्राप्त करना चाहते हैं, तो एक ऐसी स्क्रिप्ट लिखें जिसमें स्वयं का कोई आउटपुट न हो। लेकिन इसके बजाय सभी आउटपुट को टेक्स्टफाइल में रखें।

और साथ

mail -s 'your subject' adress@where < textfile

आप जिस तरह से चाहते हैं उसे प्राप्त करते हैं।


11
2017-08-20 07:35



धन्यवाद Michèle। मैं होस्टमस्टर के स्वचालित ईमेल सिस्टम का उपयोग करने की उम्मीद कर रहा था, लेकिन ऐसा लगता है कि यह वह समाधान होगा जिसके साथ मैं जाता हूं। मेरी होस्टिंग द्वारा नियंत्रित स्वचालित क्रॉन ईमेल प्राप्त करने के बजाय मैं बस अपना ईमेल भेजूंगा। - justinl


या sh noop कमांड का उपयोग करें (:)

0 9-17 * * 1-5    : Queue Summary; PATH=/usr/sbin qshape

विषय अभी भी झुका हुआ दिखता है, लेकिन कम से कम यह वर्णनात्मक है और इसके लिए कोई बाहरी स्क्रिप्ट की आवश्यकता नहीं है।


49
2017-10-19 22:08



अब यह एक हैक है! (मुझें यह पसंद है।) - Maxy-B
ध्यान दें कि कोलन के बाद अंतरिक्ष महत्वपूर्ण है। - Patrick Forget
क्या शीर्षक "कतार सारांश" होगा? और इस मामले में "qshape" आदेश है? - Pratik Khadloya
ऐसा लगता है कि qshape एक पोस्टफिक्स कमांड है। मेरी यूनिक्स मशीन "मेल" कमांड का उपयोग करती है। लेकिन क्या qshape कमांड यहाँ प्रासंगिक है? - Pratik Khadloya
यह एक महान टिप की तरह लग रहा था, लेकिन मैं इसे काम करने के लिए नहीं मिल सकता है। नोप कमांड के बाद कमांड कभी निष्पादित नहीं होता है। - oligofren


अपने क्रॉन जॉब आउटपुट को सीधे मेल करने के लिए पाइप करें, और फिर आप विषय पंक्ति भर सकते हैं। 2>&1 वाक्यविन्यास कोई भी त्रुटि आउटपुट भेजता है जो अन्यथा गायब हो जाता है।

mycmd 2>&1 | mail -s "mycmd output" myname

18
2017-08-20 07:50



मैं यह कर रहा हूं, लेकिन स्क्रिप्ट क्रॉन के लिए आंतरिक कॉल करता है क्योंकि मैं चाहता हूं कि विषय स्क्रिप्ट चलाने की सफलता या विफलता को प्रतिबिंबित करे। - Tom Barron


पाइपिंग आउटपुट और stderr द्वारा 'mailx -E' में कमांड आउटपुट (या यदि कोई नहीं है) भेजने के लिए क्रॉन्ड की ज़िम्मेदारी ले लो। उदाहरण के लिए:

0 * * * * your-command 2>&1 | mailx -E -s "Descriptive Subject" $LOGNAME

मेलक्स का '-ई' विकल्प अच्छा है क्योंकि, क्रॉन्ड की तरह ही, अगर कोई आउटपुट भेजने के लिए कोई मेल नहीं भेजा जाएगा तो वह मेल नहीं भेजेगा।


11
2018-04-03 07:53



यहां $ LOGNAME चर क्या है? - Pratik Khadloya
क्या केवल ईमेल करने का कोई तरीका है जब कमांड का निकास कोड शून्य नहीं है? - Pratik Khadloya
@ प्रताख खडलोया, क्रोंटैब से (5): Several environment variables are set up automatically by the cron(8) daemon. SHELL is set to /bin/sh, and LOGNAME and HOME are set from the /etc/passwd line of the crontab's owner. PATH is set to "/usr/bin:/bin". HOME, SHELL, and PATH may be overridden by settings in the crontab; LOGNAME is the user that the job is running from, and may not be changed. - lingfish
कई हैं mailx कार्यान्वयन; उनमें से कुछ ही इसे पेश करते हैं -E विकल्प। उबंटू पर आप चाहते हैं bsd-mailx या heirloom-mailx संकुल; mailutils पैकेज में एक जीएनयू है mailx एक अलग के साथ आदेश -E। - Smylers


एक और समाधान एक विषय स्क्रिप्ट के साथ एक शेल स्क्रिप्ट लिखना है जिसे आप चाहते हैं कि सही आदेश कहें। आपके उदाहरण में, यह होगा:

#Optimize_MySQL_Database.sh

/ramdisk/bin/php5 -c /home5/username/scheduled/optimize_mysql.bash

आप अपनी बिन निर्देशिका को पथ में क्रॉन्टाब फ़ाइल में सेट करके शामिल कर सकते हैं।


2
2017-12-28 16:43





इसे आज़माएं - कमांड लाइन में निम्नलिखित कोड लागू करें ---

/usr/local/bin/php -q /path /hostname/foldername/Page-You-want-to-execute \
   | **mail -s "*SUBJECT*" YOUR@MAIL.COM.**
  • यह आपको मार्गदर्शन करने के लिए सिर्फ एक संदर्भ है

0
2018-06-27 07:49