क्रोन बनाम सिस्टमड टाइमर


83

यह हाल ही में मुझे बताया गया था कि क्रोन का एक विकल्प मौजूद है, अर्थात् सिस्टमड टाइमर।

हालांकि, मुझे सिस्टमड या सिस्टमड टाइमर के बारे में कुछ नहीं पता है। मैंने केवल क्रोन का उपयोग किया है।

आर्क विकी में थोड़ी चर्चा है । हालांकि, मैं cronपेशेवरों और विपक्षों पर ध्यान केंद्रित करते हुए और सिस्टमड टाइमर के बीच एक विस्तृत तुलना की तलाश में हूं । मैं डेबियन का उपयोग करता हूं, लेकिन मैं उन सभी प्रणालियों के लिए एक सामान्य तुलना करना चाहूंगा जिनके लिए ये दो विकल्प उपलब्ध हैं। इस सेट में केवल लिनक्स वितरण शामिल हो सकता है।

यहाँ मुझे क्या पता है

क्रॉन बहुत पुराना है, 1970 के दशक के अंत में वापस जा रहा था। क्रोन के मूल लेखक यूनिक्स के निर्माता केन थॉम्पसन हैं। विक्सी क्रोन, जिनमें से आधुनिक लिनक्स वितरण में क्रोन प्रत्यक्ष वंशज हैं, 1987 से तारीखें हैं।

Systemd बहुत नया है, और कुछ हद तक विवादास्पद है। विकिपीडिया मुझे बताता है कि इसकी प्रारंभिक रिलीज़ 30 मार्च 2010 थी।

इसलिए, सिस्टेम टाइमर पर क्रोन के लाभों की मेरी वर्तमान सूची है:

  1. क्रोन को किसी भी यूनिक्स जैसी प्रणाली में होने की गारंटी दी जाती है, जो कि सॉफ्टवेयर के इंस्टाल करने योग्य समर्थित टुकड़ा होने के अर्थ में है। वह बदलने वाला नहीं है। इसके विपरीत, सिस्टमड भविष्य में लिनक्स वितरण में बना रह सकता है या नहीं। यह मुख्य रूप से एक init सिस्टम है, और एक अलग init सिस्टम द्वारा प्रतिस्थापित किया जा सकता है।

  2. क्रोन उपयोग करने के लिए सरल है। सिस्टम टाइमर की तुलना में निश्चित रूप से सरल है।

क्रोन पर सिस्टमड टाइमर के फायदों की संबंधित सूची है:

  1. सिस्टमड टाइमर अधिक लचीले और सक्षम हो सकते हैं। लेकिन मुझे इसके उदाहरण चाहिए।

इसलिए, संक्षेप में, यहां कुछ चीजें दी गई हैं जिन्हें उत्तर में देखना अच्छा होगा:

  1. प्रत्येक का उपयोग करने के पेशेवरों और विपक्षों सहित क्रोन बनाम सिस्टमड टाइमर की विस्तृत तुलना।
  2. चीजों के उदाहरण एक कर सकते हैं कि दूसरा नहीं कर सकता।
  3. कम से कम एक साइड-बाय-साइड तुलना क्रोन स्क्रिप्ट बनाम सिस्टमेड टाइमर्स स्क्रिप्ट।

4
"क्रोन किसी भी यूनिक्स जैसी प्रणाली में होने की गारंटी है। यह बदलने वाला नहीं है।" - मैं इस पर जोरदार बहस करूंगा। जबकि ऐतिहासिक रूप से क्रोन को अक्सर यूनिक्स इंस्टॉलेशन के बेस सेटअप में शामिल किया गया है, अधिकांश प्रणालियों पर आज यह दूसरों के बीच बस एक मनमाना वैकल्पिक सॉफ्टवेयर पैकेज है। वास्तव में, आसपास कई लोकप्रिय क्रोन विकल्प हैं (जैसे एनाक्रोन, एफक्रॉन, जॉबर) जो क्रोन के लिए बेहतर हो सकते हैं। सिस्टम के संचालन के लिए cron की कार्यक्षमता आवश्यक नहीं है जिस तरह से systemd या init है, इसलिए यदि आप वर्तमान और भविष्य की पोर्टेबिलिटी के बारे में चिंतित हैं, तो मैं इस पर अपना दांव नहीं लगाऊंगा।
गुइडो

6
यह उन चीजों की एक सूची है जिन्हें आप उत्तर में चाहते हैं। मुझे लगता है कि शायद आपको उपकरण सीखने में कुछ समय बिताना चाहिए और देखना चाहिए कि क्या आप उन उत्तरों को अपने दम पर तैयार कर सकते हैं, और यदि आपके पास कुछ विशिष्ट चीजें हैं जो आपको समझ में नहीं आती हैं, तो उनसे यहां पूछें।
लार्क्स

5
ज़रुरी नहीं। मैंने कहा कि मैं इस विषय पर कहना चाहता हूं। सिस्टमड को शामिल करने वाली किसी भी चीज के बारे में विस्तारित चर्चा में आना व्यर्थ की तुलना में बुरा है - कुछ लोग सोचते हैं कि सिस्टमड लाता है कि मामूली लाभ लिनक्स इकोसिस्टम के कॉर्पोरेट एकाधिकार के लायक हैं। दूसरों को नहीं।
कास

7
"क्रॉन बहुत पुराना है, 1970 के दशक के अंत में वापस जा रहा है।" तथ्यात्मक रूप से सही, लेकिन पूरी तरह से अप्रासंगिक जब तक आपके सिस्टम पर संकुल समझदार और स्थिर तरीके से बनाए रखा जा रहा है। सूरज भी बहुत पुराना है, लेकिन मुझे उम्मीद है कि इसका मतलब यह नहीं है कि हमें इसे कुछ शिनियर और नए के साथ बदलना चाहिए।
ओथियस

5
@ मुझे लगता है कि आप उस हिस्से को गलत ले रहे हैं - यह कहना कि कुछ लंबे समय से चारों ओर एक अपमान नहीं है। कम से कम यूनिक्स के बहुत से लोगों के लिए। यह कहना ज्यादा पसंद है कि एक घर सैकड़ों साल पुराना है - निश्चित रूप से इसका मतलब है कि इसमें कुछ समस्याएं होंगी, कुछ सामान रेट्रोफिटिंग से अजीब होंगे, लेकिन इसमें एक निश्चित आकर्षण भी है, और यह अच्छी तरह से बनाया गया होगा। यह कहना नहीं है। यह एक सरल उपकरण है जो चार दशकों के लिए उपयोगी साबित हुआ है।
व्युत्पन्न

जवाबों:


43

यहाँ उन दो के बारे में कुछ बिंदु दिए गए हैं :

  1. यह जांचना कि वास्तव में आपकी क्रोन जॉब क्या गड़बड़ करती है, लेकिन सभी सिस्टेम टाइमर घटनाओं को सिस्टम जर्नल में ध्यान से लॉग इन किया जाता है, जैसे कि ईवेंट पर आधारित अन्य सिस्टेम यूनिट्स जो चीजों को बहुत आसान बनाती हैं।

  2. systemd टाइमर संसाधन प्रबंधन, IO CPU शेड्यूलिंग के लिए अपनी सभी क्षमताओं के साथ systemd सेवाएं हैं, ...
    एक सूची है:

    • systemcall फ़िल्टर
    • उपयोगकर्ता / समूह आईडी
    • membershipcontrols
    • अच्छा मूल्य
    • OOM स्कोर
    • IO शेड्यूलिंग क्लास और प्राथमिकता
    • CPU शेड्यूलिंग नीति CPU
    • आत्मीयता umask
    • टाइमर सुस्त
    • सुरक्षित बिट्स
    • नेटवर्क का उपयोग और ...
  3. निर्भरता विकल्प के साथ अन्य systemd सेवाओं की तरह ही सक्रियण समय पर निर्भरता हो सकती है।

  4. इकाइयों को विभिन्न तरीकों से सक्रिय किया जा सकता है, उनमें से संयोजन को भी कॉन्फ़िगर किया जा सकता है। उपयोगकर्ता, बूट, हार्डवेयर स्थिति परिवर्तन या उदाहरण के लिए 5mins कुछ हार्डवेयर प्लग इन और ... जैसी विभिन्न घटनाओं द्वारा सेवाओं को शुरू और ट्रिगर किया जा सकता है।

  5. बहुत आसान विन्यास कुछ फाइलों और सीधे आगे के टैग को सिस्टम टाइमर्स के साथ अपनी आवश्यकताओं के आधार पर विभिन्न प्रकार के अनुकूलन करने के लिए।

  6. पूरी चीज़ को आसानी से सक्षम / अक्षम करें:

    systemctl enable/disable 
    

    और सभी नौकरी के बच्चों को मार डालो:

    systemctl start/stop
    
  7. systemd टाइमर को कैलेंडर्स और मोनोटोनिक समय के साथ निर्धारित किया जा सकता है, जो कि विभिन्न टाइमज़ोन और के मामले में वास्तव में उपयोगी हो सकता है ...

  8. सिस्टमड टाइम इवेंट (कैलेंडर) क्रोन की तुलना में अधिक सटीक हैं (1s परिशुद्धता लगता है)

  9. सिस्टमड टाइम इवेंट अधिक सार्थक होते हैं, उन लोगों के लिए जो आवर्ती होते हैं या यहां तक ​​कि जो एक बार होने चाहिए, यहां दस्तावेज़ से एक उदाहरण है :

    Sat,Thu,Mon-Wed,Sat-Sun → Mon-Thu,Sat,Sun *-*-*00:00:00
      Mon,Sun 12-*-* 2,1:23 → Mon,Sun 2012-*-* 01,02:23:00
                    Wed *-1 → Wed *-*-01 00:00:00
            Wed-Wed,Wed *-1 → Wed *-*-01 00:00:00
                 Wed, 17:48 → Wed *-*-* 17:48:00 
    
  10. सीपीयू के उपयोग के दृष्टिकोण से सिस्टम सिस्टेम टाइमर बीते हुए समय पर सीपीयू को जगाता है, लेकिन क्रोन अक्सर ऐसा करता है।

  11. समय की घटनाओं को निष्पादित करने के आधार पर निर्धारित किया जा सकता है, कुछ देरी को निष्पादन के बीच सेट किया जा सकता है।

  12. अन्य कार्यक्रमों के साथ संचार भी उल्लेखनीय है कभी-कभी कुछ अन्य कार्यक्रमों के लिए टाइमर और उनके कार्यों की स्थिति जानना आवश्यक है।


2
यह एक अच्छा प्रयास है, धन्यवाद। हालांकि, क्रोन के साथ अधिक प्रत्यक्ष तुलना एक उदाहरण सहित सहायक होगी। इसके अलावा, आप जो कुछ लिखते हैं वह पूरी तरह से स्पष्ट नहीं है, उदाहरण के लिए "सीपीयू उपयोग दृश्य बिंदु सिस्टेम टाइमर से बीते हुए समय पर सीपीयू जागता है, लेकिन क्रोन अधिक बार ऐसा करता है।"
फहीम मीठा

नमस्कार, @ F.sb! आपके उत्तर से लगता है कि आप विभिन्न समय क्षेत्रों का उपयोग करके नौकरियों को निर्धारित कर सकते हैं। क्या ये सही है? आप वह कैसे करेंगें? क्रोन के मानक कार्यान्वयन पर यह एक महत्वपूर्ण लाभ होगा, लेकिन मुझे इसके बारे में कोई जानकारी नहीं मिली, इसके अलावा man systemd.timeजो इसके विपरीत लगता है: गैर-स्थानीय टाइमज़ोन यूटीसी को छोड़कर समर्थित नहीं हैं।
टाड लिस्फी

निर्भरताएं आसान हैं। उदाहरण के लिए यदि होस्ट बैकअप सिस्टमड टाइमर के रूप में चलता है, तो आप यह सुनिश्चित करने के लिए निर्भरता का उपयोग कर सकते हैं कि बैकअप से पहले डेटाबेस निर्यात तुरंत पूरा हो जाए।
vk5tu

6
कृपया अधिक ईमानदार सामने हों। आप यह कहकर शुरू करते हैं कि ये दोनों के बारे में कुछ बिंदु हैं, और फिर अपनी पसंद के फायदे सूचीबद्ध करके जारी रखें । यह बुरा नहीं है कि आपके पास एक प्राथमिकता है, लेकिन फिर आपको सामने की ओर इतनी जगह चाहिए। इसके शीर्ष पर, यह तथ्य कि यह सब एक प्रणाली के पक्ष में है और इस प्रणाली के मेरे द्वारा किए गए पेशेवरों को नहीं लगता कि यह जवाब छोड़ दिया गया है।
जैस्पर

2
@ प्रजापति प्रिय मैं अपनी आवश्यकताओं के आधार पर दोनों का उपयोग करता हूं, और यह हमेशा आपकी आवश्यकताओं के आधार पर किसी एक को चुनने के लिए आपकी पसंद है, मैंने बस डॉक्स और मैनुअल के आधार पर कुछ तथ्यों का उल्लेख किया है।
F.sb

16

सीधे घोड़े के मुंह से, इसलिए बोलना: https://wiki.archlinux.org/index.php/Systemd/Timers#As_a_cron_replacement

उपरोक्त पृष्ठ का एक अंश:

लाभ

टाइमर का उपयोग करने का मुख्य लाभ प्रत्येक नौकरी से आता है जिसकी अपनी प्रणालीगत सेवा होती है। इनमें से कुछ लाभ हैं:

  • नौकरी आसानी से अपने टाइमर की स्वतंत्र रूप से शुरू की जा सकती है। यह डिबगिंग को सरल बनाता है।
  • प्रत्येक कार्य को एक विशिष्ट वातावरण में चलाने के लिए कॉन्फ़िगर किया जा सकता है (देखें systemd.exec (5))।
  • नौकरियां cgroups से जुड़ी हो सकती हैं।
  • अन्य सिस्टमड इकाइयों पर निर्भर करने के लिए नौकरियां स्थापित की जा सकती हैं।
  • आसान डिबगिंग के लिए जॉब्स को सिस्टमड जर्नल में लॉग इन किया जाता है।

चेतावनियां

कुछ चीजें जो क्रोन के साथ करना आसान है, अकेले टाइमर इकाइयों के साथ करना मुश्किल है।

  • जटिलता: सिस्टमड के साथ एक समय पर काम स्थापित करने के लिए आप दो फाइलें बनाते हैं और एक जोड़े को व्यवस्थित करते हैं। तुलना करें कि एक crontab के लिए एक ही लाइन जोड़ने के लिए।
  • ईमेल: नौकरी विफलता पर ईमेल भेजने के लिए क्रोन के मेल्टो के बराबर कोई अंतर्निहित नहीं है। OnFailure = का उपयोग करके समतुल्य स्थापित करने के उदाहरण के लिए अगला भाग देखें।

6
इर्रर ... मुझे यकीन नहीं है कि मैं एक ऐसे उत्तर के बारे में कैसा महसूस करता हूं जो लगभग पूरी तरह से कॉपी और पेस्ट है, खासकर जब से लाइसेंस संगत नहीं हैं। लेकिन कम से कम, आपको यह तय करना चाहिए कि "अगला भाग देखें" बिट। उस गलती के साथ, ऐसा लगता है जैसे आपने पढ़ा नहीं कि आपने क्या कॉपी और पेस्ट किया है।
derobert

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