डेवलपर टूल · क्रोंटैब जनरेटर
crontab(5) फ़ील्ड: POSIX क्या निर्दिष्ट करता है और विक्CAक्सटेंशन क्या है
· पेजभूमि
Cron सुवाह्यता मान्यकरण
प्रत्येक Cron सुविधा मानक नहीं है. यह पोस्ट POSIX crontab विनिर्देश को उन एक्सटेंशन (चरण, नाम, उपनाम) से अलग करती है जिन्हें विक्सी Cron ने जोड़ा और अधिकांश लिनक्स सिस्टम मानते हैं।
एक वैध ToolAcre अभिव्यक्ति अभी भी किसी अन्य शेड्यूलर द्वारा समर्थित नहीं हो सकती है
ToolAcre से गुजरने वाले शेड्यूल ने इस पार्सर को संतुष्ट किया है, प्रत्येक Cron कार्यान्वयन को नहीं। पोर्टेबिलिटी उस मामूली बयान से शुरू होती है। मार्ग बिल्कुल पाँच फ़ील्ड और एक परिभाषित टोकन व्याकरण स्वीकार करता है। एक लक्षित टूल, सेवा या ढाँचा कम, अधिक या संरचनात्मक रूप से कुछ अलग स्वीकार कर सकता है।
ब्राउज़र परिणाम को साक्ष्य के एक टुकड़े के रूप में रखें: अभिव्यक्ति, विवरण, चेतावनियाँ और पूर्वावलोकन क्षेत्र। तैनाती से पहले, लक्ष्य दस्तावेज़ की तुलना करें और एक हानिरहित परीक्षण चलाएं। मान्यता तभी खतरनाक हो जाती है जब स्थानीय ग्रीन सिग्नल को सार्वभौमिक अनुकूलता गारंटी में बढ़ावा दिया जाता है।
रिपॉजिटरी यह स्थापित नहीं करती कि POSIX को क्या चाहिए
कार्यपुस्तिका ने POSIX आवश्यकताओं को एक्सटेंशन से अलग कर दिया, लेकिन रिपॉजिटरी स्रोतों में कोई POSIX विशिष्टता दिखाई नहीं देती है। ToolAcre का व्यवहार यह साबित नहीं कर सकता कि कौन सा मानक जनादेश पेश करता है। इसलिए यह अनुभाग किसी मानक निकाय को निर्दिष्ट किए बिना कार्यान्वित सिंटैक्स का वर्णन करता है।
कार्यान्वित संख्यात्मक श्रेणियां हैं 0–59 मिनट, 0–23 घंटे, 1–31 महीने के दिन, 1–12 महीने और 0–7 कार्यदिवस। वाइल्डकार्ड, एकल मान, समावेशी कैटेगरी, अल्पविराम सूचियाँ, वाइल्डकार्ड चरण, कैटेगरी चरण और एक चरण के साथ एक आरंभिक मान सभी को पार्स और परीक्षण किया जाता है।
नाम, चरण, रविवार 7 और उपनाम मानक-इतिहास के दावे के बिना यहां लागू किए गए हैं
महीने के नाम JAN से DEC तक और कार्यदिवस के नाम SUN से SAT तक केस-असंवेदनशील हैं। नाम अकेले, सूचियों में और कैटेगरी में प्रकट हो सकते हैं। सप्ताह के दिन 7 को रविवार के रूप में स्वीकार किया जाता है और 0 के लिए सामान्यीकृत किया जाता है। वे `parseField` के अवलोकन योग्य गुण हैं, भले ही कोई अन्य कार्यान्वयन उन्हें कैसे वर्गीकृत करता हो।
उपनाम तालिका `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` और `@hourly` का विस्तार करती है। `@reboot` को जानबूझकर अस्वीकार कर दिया गया है क्योंकि इसमें पूर्वावलोकन के लिए कोई कैलेंडर शेड्यूल नहीं है। अज्ञात एट-साइन शब्दों को समर्थित सूची का नामकरण करने में त्रुटि प्राप्त होती है।
पर्यावरण असाइनमेंट समर्थन इस पार्सर के बाहर है
पर्यावरण असाइनमेंट इस अभिव्यक्ति व्याकरण का हिस्सा नहीं हैं। इनपुट बॉक्स एक शेड्यूल की अपेक्षा करता है, और `parseCron` समर्थित उपनाम को हल करने के बाद इसे पांच टुकड़ों में विभाजित करता है। इस मार्ग के माध्यम से विस्तार, उद्धरण या पोर्टेबिलिटी के लिए `KEY=value` लाइन का परीक्षण नहीं किया जा सकता है।
वह चूक गलत मानकों के दावे को रोकती है। एक संपूर्ण crontab फ़ाइल में ऐसे निर्माण शामिल हो सकते हैं जो केवल-अभिव्यक्ति टूल कभी नहीं देखता है। उनको लक्ष्य के विरूद्ध अलग-अलग जांचें। ToolAcre की सटीक फ़ील्ड त्रुटियों को बड़ी फ़ाइल में असंबंधित पंक्तियों के बारे में निर्णय के रूप में पुन: प्रस्तुत नहीं किया जाना चाहिए।
लक्ष्य व्याकरण की जाँच करें और हानिरहित शेड्यूल परीक्षण का उपयोग करें
लक्ष्य की जाँच फ़ील्ड गणना और ऑपरेटरों से शुरू होनी चाहिए। पुष्टि करें कि क्या नाम, रविवार 7, स्लैश चरण और एट-साइन उपनाम स्वीकार किए जाते हैं। फिर निकट अवधि के लिए एक हानिरहित अवलोकन योग्य कार्रवाई स्थापित करें, सबूत मिलने के बाद इसे हटा दें और लक्ष्य परिणाम की इच्छित अभिव्यक्ति के साथ तुलना करें।
किसी संवेदनशील कमांड के साथ या किसी दुर्लभ वार्षिक तारीख की प्रतीक्षा करके पोर्टेबिलिटी का परीक्षण न करें। सबसे छोटी सुरक्षित जांच चुनें जो व्याकरण समर्थन को अलग करती हो। ToolAcre उस शेड्यूल को बनाने और उसे समझाने में मदद कर सकता है, जबकि लक्ष्य रन उस हिस्से को स्थापित करता है जिसे ब्राउज़र नहीं जान सकता है।
व्यावहारिक उदाहरण: ToolAcre के व्याकरण के अंतर्गत चरण प्रपत्र और स्पष्ट सूची
प्रत्येक पाँच मिनट के लिए, ToolAcre `*/5 * * * *` स्वीकार करता है। यह स्पष्ट मिनट सूची `0,5,10,15,20,25,30,35,40,45,50,55 * * * *` को भी स्वीकार करता है। पार्सिंग दोनों मिनट फ़ील्ड को समान बारह मानों तक विस्तारित करता है, इसलिए उनके अगले-रन उम्मीदवार एक ही प्रारंभिक क्षण और क्षेत्र के अंतर्गत मेल खाते हैं।
जब किसी लक्ष्य में चरण सिंटैक्स का अभाव होता है, तो स्पष्ट सूची फ़ॉलबैक उम्मीदवार के रूप में काम कर सकती है, लेकिन यह रिपॉजिटरी उस लक्ष्य की सूची समर्थन को प्रमाणित नहीं कर सकती है। सिमेंटिक तुल्यता के लिए ToolAcre में दोनों फॉर्मों की तुलना करें, फिर गंतव्य दस्तावेजों में से जो भी फॉर्म हो उसे सत्यापित करें। यहां समतुल्यता वहां पोर्टेबिलिटी प्रमाण नहीं है।
छह-फ़ील्ड सिंटैक्स अस्वीकार कर दिया गया है; इसके बाह्य शब्दार्थ यहाँ प्रलेखित नहीं हैं
छठा फ़ील्ड स्वीकार नहीं किया जाता है. त्रुटि बताती है कि अग्रणी सेकंड शैली क्वार्ट्ज या सिस्टमड-जैसे इनपुट से संबंधित है, लेकिन पार्सर उन व्याकरणों को लागू नहीं करता है। इसमें कोई वर्ष फ़ील्ड नहीं है और कोई `?`, `L`, `W` या `#` ऑपरेटर नहीं है।
अनुवाद का प्रयास करने से पहले फ़ील्ड गिनें. यदि असमर्थित सिंटैक्स शेड्यूलिंग अर्थ रखता है, तो एक स्पष्ट पांच-फ़ील्ड पुनर्लेखन हानिपूर्ण हो सकता है। स्रोत शेड्यूलर के लिए दस्तावेज़ीकरण और परीक्षणों का उपयोग करें, फिर केवल ToolAcre के लक्ष्य व्याकरण द्वारा प्रस्तुत की जाने वाली आवश्यकताओं को व्यक्त करें। और कुछ भी स्पष्ट असंगति बनी रहनी चाहिए।
टेकअवे: जानें कि कौन सी सुविधाएं एक्सटेंशन हैं - और जब पोर्टेबिलिटी मायने रखती है तो दोनों फॉर्म बनाने और जांचने के लिए जनरेटर का उपयोग करें
पोर्टेबिलिटी एक तुलना है, न कि किसी अभिव्यक्ति में एम्बेडेड लेबल। ToolAcre एक अच्छी तरह से परीक्षण किया गया पक्ष देता है: पांच स्थान, संख्यात्मक सीमाएं, चयनित नाम, संयोजन योग्य श्रेणियां/lists/steps और सात उपनाम। यह विकृत या विदेशी रूपों के लिए स्पष्ट इनकार भी देता है।
सटीक तर्क करने के लिए उस अनुबंध का उपयोग करें, फिर दूसरे पक्ष को सत्यापित करें। इस पार्सर में एक स्पष्ट सूची और एक चरण बराबर हो सकते हैं जबकि अन्यत्र केवल एक ही काम करता है। बोली सीमा की रिपोर्ट करना उस मानक का आह्वान करने से अधिक व्यावहारिक है जिसका लेख वास्तव में स्रोत नहीं है।