डेवलपर टूल · क्रोंटैब जनरेटर
Cron आउटपुट कहां जाता है: MAILTO, पुनर्निर्देशन और कार्य त्रुटियां ढूंढना
· यह काम किस प्रकार करता है
Cron ऑब्ज़र्वेबिलिटी डेवलपर-वर्कफ़्लो
Cron मेल आउटपुट डिफ़ॉल्ट रूप से होता है, जिसका अर्थ अधिकांश सर्वर पर गायब हो जाता है। यह पोस्ट MAILTO, stdout और stderr पुनर्निर्देशन, syslog औरjournalctl की व्याख्या करती है, इसलिए एक असफल कार्य सबूत छोड़ देता है।
कार्य विफल हो गया और कुछ भी नहीं बचा - कोई लॉग नहीं, कोई मेल नहीं, कोई त्रुटि नहीं, केवल एक गुम रिपोर्ट
एक रिपोर्ट गायब हो सकती है भले ही `0 0 * * *` सही ढंग से पार्स, वर्णन और पूर्वावलोकन करता हो। वे संकेत मध्यरात्रि कैलेंडर उम्मीदवारों की स्थापना करते हैं; वे stdout, stderr, गंतव्य फ़ाइल या अधिसूचना चैनल के बारे में कुछ नहीं कहते हैं। लापता आउटपुट का पीछा करने के लिए शेड्यूल बदलने से पहली समस्या को उजागर किए बिना दूसरी समस्या पैदा होने का खतरा रहता है।
सबूतों को सुरक्षित रखने से शुरुआत करें. सटीक पाँच फ़ील्ड, चयनित पूर्वावलोकन क्षेत्र और अगली-रन सूची सहेजें। फिर जांच करें कि क्या कोई कार्रवाई शुरू हुई और उसके परिणाम लक्ष्य पर कहां निर्देशित हुए। ToolAcre वास्तव में उपयोगी है क्योंकि यह कैलेंडर के आधे हिस्से को अवलोकन विकल्पों से स्वतंत्र रूप से जांचने की सुविधा देता है जिसे वह लागू नहीं करता है।
एक गुम परिणाम एक वैध अभिव्यक्ति और पूर्वावलोकन के साथ सह-अस्तित्व में हो सकता है
कार्यपुस्तिका में स्थानीय एजेंट के माध्यम से डिफ़ॉल्ट मेल डिलीवरी का वर्णन किया गया है। टूल में कोई मेल कोड, डेमॉन कॉन्फ़िगरेशन या ऑपरेटिंग-सिस्टम एकीकरण दिखाई नहीं देता है। ब्राउज़र को यह नहीं पता होता है कि लक्ष्य होस्ट के पास मेल ट्रांसपोर्ट है या नहीं, आउटपुट को दबाता है या पूरी तरह से अलग शेड्यूलर का उपयोग करता है। किसी डिफ़ॉल्ट को सार्वभौमिक के रूप में दोहराना साक्ष्य से अधिक होगा।
वास्तविक कार्यान्वयन के दस्तावेज़ीकरण और कॉन्फ़िगरेशन से परामर्श लें। एक शेड्यूल पार्सर पांच संख्यात्मक फ़ील्ड से आउटपुट रूटिंग का अनुमान नहीं लगा सकता है। दो होस्ट एक ही अभिव्यक्ति को स्वीकार कर सकते हैं और कमांड आउटपुट को अलग-अलग तरीके से मान सकते हैं। इसलिए लेख मेल को सत्यापित करने की एक बाहरी संभावना के रूप में प्रस्तुत करता है, वादा किए गए गंतव्य के रूप में नहीं।
डिफ़ॉल्ट मेल व्यवहार इस रिपॉजिटरी द्वारा सत्यापित नहीं है
`MAILTO` मिनट, घंटे, महीने का दिन, महीना या सप्ताह का दिन नहीं है। एक्सप्रेशन बॉक्स में असाइनमेंट दर्ज करने से सटीक-पांच-फ़ील्ड नियम विफल हो जाता है, और प्रति-फ़ील्ड नियंत्रण में इसके लिए कोई जगह नहीं होती है। यह एक लुप्त कैलेंडर सुविधा के बजाय एक दायरा सीमा है।
अधिसूचना कॉन्फ़िगरेशन को लक्ष्य क्रॉस्टैब दस्तावेज़ के बगल में रखें, लेकिन जनरेटर से इसे पार्स करने या संरक्षित करने की अपेक्षा न करें। कॉपी किए गए शेड्यूल में केवल अभिव्यक्ति होती है। यदि एक पूर्ण-फ़ाइल एडिटर की आवश्यकता है, तो उस क्षमता को इस रूट पर प्रोजेक्ट करने के बजाय ऐसा एडिटर चुनें जो असाइनमेंट हैंडलिंग को स्पष्ट रूप से दस्तावेज़ित करता हो।
MAILTO अभिव्यक्ति व्याकरण से बाहर है
रीडायरेक्ट ऑपरेटर और पाइपलाइन टाइमिंग खंड के बाद के हैं। ToolAcre उन्हें कभी शेल में नहीं भेजता; इसकी प्रतिलिपि कार्रवाई उस पृथक्करण को दृश्यमान बनाने के लिए प्लेसहोल्डर कमांड का उपयोग करती है। नतीजतन, यह एपेंड बनाम ओवरराइट, डिस्क्रिप्टर ऑर्डरिंग, फ़ाइल अनुमतियां या लॉगिंग कमांड मौजूद है या नहीं, को सत्यापित नहीं कर सकता है।
गंतव्य पर निष्पादन योग्य सिंटैक्स के रूप में आउटपुट हैंडलिंग की समीक्षा करें। पुनर्निर्देशन रणनीति में परिवर्तन होने पर पांच शेड्यूल फ़ील्ड स्थिर रह सकते हैं। वह स्वतंत्रता परिचालन रूप से उपयोगी है: एक टीम रन टाइम में बदलाव किए बिना लॉग में सुधार कर सकती है, और विफलताओं को पकड़ने वाले तंत्र को गलती से दोबारा लिखे बिना समय को समायोजित कर सकती है।
पुनर्निर्देशन कमांड का है, शेड्यूल का नहीं
जर्नल, सिसलॉग या पैकेज-विशिष्ट Cron फ़ाइल जैसे स्थान रिपॉजिटरी कार्यान्वयन से अनुपस्थित हैं। ToolAcre ब्राउज़र में चलता है और होस्ट सेवा प्रबंधक से पूछताछ नहीं करता है। किCAक पथ का नाम उस स्थान के रूप में रखना भ्रामक होगा जहां पाठक को साक्ष्य मिलना चाहिए।
इसके बजाय, लक्ष्य अनुसूचक से उसकी अपनी स्थिति और लॉग के लिए पूछें, फिर उत्पन्न पूर्वावलोकन के साथ टाइमस्टैम्प को सहसंबंधित करें। अपेक्षित उम्मीदवार के साथ प्रारंभ रिकॉर्ड का मिलान कार्रवाई या आउटपुट पथ में विफलता को अलग करता है। एक गुम प्रारंभ रिकॉर्ड इंस्टॉलेशन, शेड्यूलर स्थिति या बोली बेमेल की ओर इशारा करता है - स्वचालित रूप से एक विकृत अभिव्यक्ति नहीं।
डेमॉन लॉगिंग स्थान कार्यान्वयन-विशिष्ट हैं और छोड़े गए हैं
एक अनुशासित जांच `30 2 * * *` से शुरू होती है। "प्रत्येक दिन 02:30 पर" की पुष्टि करें और तैनाती क्षेत्र में पांच आगामी तिथियां नोट करें। लक्ष्य के दस्तावेजी तंत्र का उपयोग करके कमांड में अवलोकनशीलता जोड़ें, फिर हानिरहित आउटपुट के साथ परीक्षण करें। उस प्रयोग के दौरान शेड्यूल में बदलाव नहीं होना चाहिए।
यह विधि दो स्वतंत्र कलाकृतियाँ उत्पन्न करती है: एक कैलेंडर अपेक्षा और निष्पादन साक्ष्य। यदि आउटपुट अनुपस्थित रहता है, तो फ़ील्ड संपादित करने से पहले पूर्वावलोकन के साथ होस्ट घड़ी और शेड्यूलर इंस्टॉलेशन की तुलना करें। ToolAcre एक सटीक अपेक्षित समय का योगदान देता है, जो बाहरी लॉगिंग जांच को बेहतर ढंग से सीमित करने के लिए पर्याप्त है।
कार्य सीमा: अन्यत्र अवलोकनशीलता जोड़ते हुए एक मान्य शेड्यूल को सुरक्षित रखें
लॉग रोटेशन, रिटेंशन, अलर्ट थ्रेशोल्ड और डिलीवरी गारंटी अलग-अलग सिस्टम हैं। `cron.js` में कुछ भी फ़ाइलें नहीं खोलता, बाइट्स नहीं घुमाता या सूचनाएं नहीं भेजता। यहां तक कि इसकी चेतावनियां असंभव तिथियों और ओरेड डे फ़ील्ड जैसे कैलेंडर संयोजनों की चिंता करती हैं, रनटाइम विफलताओं की नहीं।
वे चूकें रनबुक में स्पष्ट होनी चाहिए। एक शेड्यूल जो विश्वसनीय रूप से सक्रिय होता है वह अभी भी एक डिस्क को आउटपुट से भर सकता है, जबकि एक साइलेंट कमांड उपयोगी अलर्ट के बिना विफल हो सकता है। उन जोखिमों के लिए विशेष नियंत्रणों का उपयोग करें और ToolAcre को एक अवलोकन मंच में विस्तारित करने के बजाय अभिव्यक्ति समीक्षा टूल के रूप में बनाए रखें।
जनरेटर के बाहर रोटेशन और अलर्टिंग रहती है
Cron सिंटैक्स उत्तर देता है "कौन सी दीवार-घड़ी के मिनट मेल खाते हैं?" आउटपुट कॉन्फ़िगरेशन उत्तर देता है "कार्रवाई के साक्ष्य कहाँ जाते हैं?" ToolAcre पहले प्रश्न को विश्लेषण, विवरण, चेतावनियों और पूर्वावलोकन के साथ हल करता है। यह जानबूझकर पृथक अभिव्यक्ति से दूसरे का उत्तर नहीं दे सकता।
पांच फ़ील्ड बनाएं, ज़ोन और कैलेंडर को सत्यापित करें, फिर अलग से परीक्षण किए गए परिनियोजन डिज़ाइन के माध्यम से कहीं आउटपुट लैंड बनाएं। यह बताना कि सीमा छिपने की सीमा नहीं है; यह एक वैध अभिव्यक्ति को इस प्रमाण के रूप में गलत होने से रोकता है कि कोई कार्य चला, सफल हुआ या पुनर्प्राप्ति योग्य रिकॉर्ड छोड़ दिया गया।