क्या क्रोन जॉब आउटपुट को डिफॉल्ट रूप से * मेल के बजाय * लिख सकता है?


23

हम सभी जानते हैं कि क्रॉन जॉब्स से आउटपुट को संभालने का सही तरीका यह है कि इसे किसी फाइल में रीडायरेक्ट किया जाए:

0 * * * * /bin/date >> /var/log/date.log 2>&1

हालांकि, कभी-कभी प्रवेश आलसी, भुलक्कड़, या अज्ञानी होते हैं और उन पुनर्निर्देशों में नहीं डालते हैं; इस स्थिति में नौकरी का आउटपुट $ MAILTO या मालिक उपयोगकर्ता या रूट को मेल हो जाता है। मेरे द्वारा प्रबंधित कुछ बक्से पर, मेल अक्षम है, इसलिए यह आउटपुट एक ब्लैक होल में चला जाता है। मैं जो सोच रहा हूं, क्या क्रोन को किसी भी काम का आउटपुट लेने और इसे मेल करने के बजाय इसे पकड़ने के लिए कहा जा सकता है? मैं उबंटू (8.04 का उपयोग कर रहा हूं लेकिन 9.04 की ओर पलायन कर रहा हूं)। इस यादृच्छिक Google परिणाम में इस तरह के समाधान का एक संकेत है , लेकिन मुझे लगता है कि ओपी क्रोन आउटपुट बनाम क्रॉन जॉब्स के आउटपुट के बारे में भ्रमित हो सकता है।

मैं उन समाधानों के लिए खुला हूं जिनमें स्क्रिप्टिंग या हैकिंग शामिल है, लेकिन आदर्श रूप से यह एक कॉन्फ़िगर बिट होगा जो मैं कहीं सेट कर सकता हूं। मुझे कोई संकेत नहीं दिख रहा है man cron। धन्यवाद!

जवाबों:


1

के लिए cronieक्रॉन (जो Gentoo हैंडबुक द्वारा उदाहरण के लिए सिफारिश की है), वहाँ क्रॉन कॉल, जो syslog का उपयोग कर सिस्टम लॉग करने के लिए काम करने के लिए आउटपुट भेजता तर्क "-s" है।


3

संक्षिप्त उत्तर नहीं है, क्रोन डिजाइन के द्वारा क्रॉन्ताब के मालिक को मेल करता है। मानक क्रोन में इसे बदलने का कोई तरीका नहीं है।

सबसे अच्छा मैं सोच सकता हूं कि एमटीए को उन मशीनों पर कॉन्फ़िगर करना है जहां आप चाहते हैं कि यह व्यवहार उपयोगकर्ता मेलबॉक्स के बजाय लॉग फ़ाइल में मेल को डंप करने के लिए हो।


3

मुझे यकीन नहीं है कि जब आप कहते हैं कि "मेल डिसेबल है" तो आपका क्या मतलब है। लेकिन हो सकता है कि आप एक उर्फ ​​सेट कर सकते हैं /etc/aliasesजिसमें एक पाइप को निर्देशित किया गया हो। कुछ इस तरह

root: "|/bin/cat >> /var/log/cron.log"

root: /var/log/cron.logकाम नहीं करता है? feep.net/sendmail/tutorial/intro/aliases.html
endolith

न ही मेरे लिए कुछ करता है।
एंडोलिथ

ये तभी काम कर सकते हैं जब आप अपने MTA के रूप में Sendmail चला रहे हों। यह कम आम होता जा रहा है। (हां मुझे पता है कि मैं 5 साल पुरानी टिप्पणी का जवाब दे रहा हूं!)
एलेक्स एल

2

मुझे नहीं लगता कि जो आप पूछ रहे हैं वह वास्तव में उबंटू (या किसी अन्य) क्रोन के साथ संभव है।

Geekmonkeys के विचार के अलावा, आप $ MAILTO को एक स्थानीय खाते में भी सेट कर सकते हैं और इसे आउटपुट के माध्यम से घोषित कर सकते हैं ।


1

क्रोन के लिए इस तरह की सेटिंग के बारे में कभी नहीं सुना, इसलिए मैं स्क्रिप्टिंग का रास्ता अपनाऊंगा।

गश्ती / वार / स्पूल / क्रोन / * के लिए क्रोन जॉब बनाएं, और किसी भी ऐसे जॉब को रीडायरेक्ट करें जिसमें कोई भी न हो।


1

एक और विकल्प होगा कि cron_wrapper नामक शेल स्क्रिप्ट बनाई जाए या कुछ और किया जाए, और ऐसा कुछ किया जाए:

#! / Bin / श

eval "$ * >> >> /var/log/cronlog.log"
बाहर निकलें $?

फिर, आपके सभी crontabs को बस कुछ इस तरह की आवश्यकता है:

* * * * * / usr / स्थानीय / बिन / cron_wrapper इको हैलो

नोट मैंने इस कोड का परीक्षण नहीं किया है, यह सिर्फ एक विचार है।


1
यह समस्या हल नहीं करता है। यदि लोग MAILTO को सेट करना या किसी फ़ाइल में stdout को रीडायरेक्ट करना याद नहीं कर सकते हैं, तो वे आवरण के माध्यम से सामान चलाने के लिए याद नहीं करेंगे।
कामिल किसल

1

मुझे नहीं पता कि "मानक क्रोन" क्या है। बहुत सारे क्रोन डेमॉन हैं, विभिन्न डिस्ट्रोस अलग-अलग उपयोग करते हैं। विक्सी क्रोन सबसे व्यापक रूप से तैनात किया गया है, इसलिए शायद यही आपका मतलब है। लेकिन कुछ विकृतियों पर, यह डिफ़ॉल्ट नहीं होगा।

मैंने डिलन के क्रोन (dcron) का विकास कर लिया है , जो आर्क लिनक्स पर डिफ़ॉल्ट है। अन्य डिस्ट्रोस इसका भी उपयोग करते हैं, लेकिन मुझे नहीं पता कि यह कहीं और डिफ़ॉल्ट है या नहीं। dcron में यह -Mनिर्दिष्ट करने के लिए एक आह्वान विकल्प है कि आप भेजने के बजाय कस्टम स्क्रिप्ट का उपयोग करना चाहते हैं। स्क्रिप्ट को बिना किसी तर्क के, और कुछ ईमेल हेडर और &>स्टड के रूप में किसी भी क्रोनोजर के आउटपुट के साथ कहा जाता है । (यदि कोई &>आउटपुट नहीं है, तो स्क्रिप्ट नहीं है।)


1

क्यों हम विशेष रूप से उपयोगकर्ता के Crontab में MAILTO = "" सेट नहीं करते हैं। यह मेल संदेशों को / var / spool / mail / में लॉगिंग अक्षम कर देगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.