मेरे उबंटू-डेस्कटॉप पर और मेरे डेबियन-सर्वर पर मेरे पास एक स्क्रिप्ट है जिसे प्रत्येक मिनट (एक स्क्रिप्ट जिसे मेरे स्थान के मिनट-टिक को ऑनलाइन ब्राउज़रगेम कहते हैं ) निष्पादित करने की आवश्यकता है ।
समस्या यह है कि डेबियन व्युत्पन्न क्रोन पर /var/log/syslog
हर बार इसे निष्पादित करने के लिए लॉगिंग होता है । मैं उस संदेश को बार-बार देख रहा हूं जिसे वह बार-बार निष्पादित करता था /var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
मुझे पता है कि एक प्रोग्राम के आउटपुट को दबाने के लिए मैं इसे रीडायरेक्ट कर सकता हूं /dev/null
, उदाहरण के लिए एक प्रोग्राम से सभी त्रुटि और चेतावनी संदेशों को छिपाने के लिए मैं इस तरह से crontab में एक लाइन बना सकता हूं
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
लेकिन मैं एक क्रोनजॉब चलाना चाहूंगा और यह सुनिश्चित करूंगा कि सभी उत्पन्न आउटपुट या त्रुटियां NULL को दी जाएं, इसलिए यह किसी भी संदेश को syslog में उत्पन्न नहीं करता है और न ही कोई ईमेल उत्पन्न करता है
EDIT:
क्रोन-लॉग को एक अलग लॉग में पुनर्निर्देशित करने का एक समाधान है जैसे कि यहां प्रस्तावित करके बदल दिया गया है/etc/syslog.conf
लेकिन दोष यह है कि तब सभी क्रोनोजर के सभी आउटपुट को पुनर्निर्देशित किया जाता है।
क्या मैं किसी तरह केवल एक ही क्रोनजोब को एक अलग लॉग फ़ाइल में पुनर्निर्देशित कर सकता हूं? अधिमानतः cron.hourly
फ़ाइल के अंदर ही कॉन्फ़िगर करने योग्य ।
MAILTO=""
कोंट्रेब की पहली पंक्ति किसी भी ईमेल को रोक देगी। साथ ही, यदि आप सभी आउटपुट को दबा रहे हैं, तो अपनी कमांड लाइनों पर पूर्ण ट्राइफेक्टा का उपयोग करें। इस स्ट्रिंग द्वारा सभी 3 प्रकारों को पुनर्निर्देशित किया गया है: >/dev/null 2>&1
- निश्चित रूप से, आपके पास अलग-अलग लॉग में आवधिक लिखों को शामिल कर सकते हैं।
MAILTO=""
क्रोन फ़ाइल की शुरुआत में भी डाल सकते हैं । यह सभी ईमेल को दबा देगा। और मैंने एक क्रोन डेमॉन के बारे में कभी नहीं सुना है जो कि साइज़लॉग को नौकरी आउटपुट भेजता है (लेकिन मुझे लगता है कि यह संभव है)।