मेरे पास हर 30 मिनट में एक स्क्रिप्ट कैसे चलती है? मेरा मानना है कि विभिन्न ओएस के लिए अलग-अलग तरीके हैं। मैं ओएस एक्स का उपयोग कर रहा हूं।
मेरे पास हर 30 मिनट में एक स्क्रिप्ट कैसे चलती है? मेरा मानना है कि विभिन्न ओएस के लिए अलग-अलग तरीके हैं। मैं ओएस एक्स का उपयोग कर रहा हूं।
जवाबों:
बस लॉन्च का उपयोग करें । यह एक बहुत शक्तिशाली लॉन्चर सिस्टम है और इस बीच यह मैक ओएस एक्स (वर्तमान ओएस एक्स संस्करण भी बिना बूट नहीं होगा) के लिए मानक लॉन्चर सिस्टम है। जो लोग से परिचित नहीं हैं के लिए launchd
(या सामान्य रूप में ओएस एक्स के साथ), यह के बीच एक संकर नस्ल की तरह है init
, cron
, at
, SysVinit ( init.d
), inetd
, upstart
और systemd
। इन सभी परियोजनाओं की अवधारणाओं को समझना, फिर भी उन चीजों की पेशकश करना जो आपको कहीं और नहीं मिल सकती हैं।
हर सेवा / कार्य एक फ़ाइल है। फ़ाइल का स्थान प्रश्नों पर निर्भर करता है: "यह सेवा कब चलना है?" और "किन विशेषाधिकारों के लिए सेवा की आवश्यकता होगी?"
सिस्टम कार्य करने के लिए जाना
/Library/LaunchDaemons/
यदि वे चलेंगे, तो कोई बात नहीं अगर कोई उपयोगकर्ता सिस्टम में लॉग इन है या नहीं। उन्हें "मूल" विशेषाधिकारों के साथ शुरू किया जाएगा।
यदि वे केवल तभी चलेंगे जब कोई उपयोगकर्ता लॉग इन होता है, तो वे जाते हैं
/Library/LaunchAgents/
और उस उपयोगकर्ता के विशेषाधिकारों के साथ क्रियान्वित किया जाएगा जो अभी लॉग इन हुए हैं।
यदि वे केवल तभी भागेंगे यदि आप लॉग इन हैं, तो वे जाते हैं
~/Library/LaunchAgents/
जहां ~ आपकी गृह निर्देशिका है। ये कार्य आपके विशेषाधिकारों के साथ चलेंगे, जैसे कि आपने उन्हें कमांड लाइन द्वारा या फाइंडर में एक फ़ाइल पर डबल क्लिक करके स्वयं शुरू किया था।
ध्यान दें कि वहाँ भी मौजूद है /System/Library/LaunchDaemons
और /System/Library/LaunchAgents
, लेकिन हमेशा की तरह, सब कुछ /System
OS X द्वारा प्रबंधित किया जाता है। आप किसी भी फाइल को वहां नहीं रखेंगे, आप वहां कोई फाइल नहीं बदलेंगे, जब तक कि आप वास्तव में यह नहीं जानते कि आप क्या कर रहे हैं। सिस्टम फ़ोल्डर में आस-पास मैसेज करना आपके सिस्टम को अनुपयोगी बना सकता है (इसे ऐसी स्थिति में ले जाएं जहां यह फिर से बूट करने से मना कर देगा)। ये वे निर्देशिकाएं हैं जहां Apple उन launchd
कार्यों को करता है जो आपके सिस्टम को बूट के दौरान उठते और चलते हैं, स्वचालित रूप से आवश्यक के रूप में सेवाएं शुरू करते हैं, सिस्टम रखरखाव कार्य करते हैं, और इसी तरह।
हर launchd
कार्य में एक फाइल होती है, जिसमें प्रारूप होता है। इसमें रिवर्स डोमेन नेम नोटेशन होना चाहिए। जैसे आप अपने कार्य को नाम दे सकते हैं
com.example.my-fancy-task.plist
इस प्लिस्ट में विभिन्न विकल्प और सेटिंग्स हो सकते हैं। एक हाथ से लिखना सबॉप्टीमल है , आप मुफ्त उपकरण लिंगोन प्राप्त करना चाह सकते हैं अपने कार्यों को बनाने के । यह टूल मुफ्त में उपयोग किया जाता था, अब इसकी कीमत ऐप स्टोर में $ 5 है और नॉन ऐप स्टोर संस्करण के रूप में $ 10 है (नॉन ऐप स्टोर संस्करण बहुत अधिक शक्तिशाली है और यदि आप पहले से ही इसके लिए भुगतान करने की योजना बना रहे हैं, तो गंभीरता से, नॉन ऐप स्टोर प्राप्त करें संस्करण)। यदि किसी को एक तुलनीय उपकरण पता है जो फ्रीवेयर या ओपन सोर्स है, तो मुझे टिप्पणियों में एक पंक्ति छोड़ दें और मैं यह सलाह दूंगा कि एक (वाणिज्यिक सॉफ्टवेयर के लिए यहां विज्ञापन नहीं करना चाहते हैं)।
एक उदाहरण के रूप में, यह इस तरह दिख सकता है
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.example.my-fancy-task</string>
<key>OnDemand</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/bin/sh</string>
<string>/usr/local/bin/my-script.sh</string>
</array>
<key>StartInterval</key>
<integer>1800</integer>
</dict>
</plist>
यह एजेंट शेल स्क्रिप्ट /usr/local/bin/my-script.sh को हर 1800 सेकंड (हर 30 मिनट) पर चलाएगा। आपके पास कुछ निश्चित तिथियों / समयों पर कार्य चलाया जा सकता है (मूल रूप से लॉन्च सब कुछ क्रोन कर सकता है) या आप "ओनडेमैंड" को भी अक्षम कर सकते हैं, जिससे लॉन्च को स्थायी रूप से चालू रखने के लिए लॉन्च किया जा सके (यदि यह समाप्त हो जाता है या क्रैश हो जाता है, तो लॉन्च तुरंत शुरू हो जाएगा) । आप यह भी सीमित कर सकते हैं कि कोई प्रक्रिया कितने संसाधनों का उपयोग कर सकती है (जैसा कि पहले कहा गया था, लिंगोन इन सभी सेटिंग्स को एक अच्छे यूआई इंटरफ़ेस में दिखाता है)।
अद्यतन: भले ही OnDemand
अभी भी समर्थित है, यह पदावनत है। नई सेटिंग को नाम दिया गया है KeepAlive
, जो बहुत अधिक समझ में आता है। यह एक बूलियन मान, जिस स्थिति में इसके बारे में ठीक विपरीत है हो सकता है OnDemand
(करने के लिए इसे स्थापित करने के false
बर्ताव करता है के रूप में अगर OnDemand
है true
और इसका उल्टा)। महान नई विशेषता यह है कि, यह एक बूलियन के बजाय एक शब्दकोश मूल्य भी हो सकता है। यदि इसका शब्दकोश मूल्य है, तो आपके पास कुछ अतिरिक्त विकल्प हैं, जो आपको अधिक बढ़िया अनाज नियंत्रण प्रदान करते हैं, जिन परिस्थितियों में कार्य को जीवित रखा जाएगा। जैसे कि इसे केवल तभी तक जीवित रखा जाता है जब तक कि प्रोग्राम शून्य के निकास कोड के साथ समाप्त हो जाता है, जब तक कि डिस्क पर एक निश्चित फ़ाइल / निर्देशिका मौजूद है, केवल तभी जब कोई अन्य कार्य भी जीवित हो, या केवल तभी जब नेटवर्क वर्तमान में है।
इसके अलावा, आप मैन्युअल रूप से कमांड लाइन के माध्यम से कार्यों को अक्षम / अक्षम कर सकते हैं:
launchctl <command> <parameter>
कमांड को लोड या अनलोड किया जा सकता है, एक प्लास्ट को लोड करने के लिए या इसे फिर से लोड करने के लिए, जिस स्थिति में फ़ाइल के लिए पथ है। या कमांड शुरू या बंद किया जा सकता है, बस ऐसे कार्य को शुरू करने या रोकने के लिए, जिस स्थिति में पैरामीटर लेबल है (com.example.my- फैंसी-कार्य)। अन्य कमांड और विकल्प भी मौजूद हैं।
एप्पल के प्लिस्ट प्रारूप और launchctl
कमांड लाइन टूल का दस्तावेज़ीकरण देखें (ध्यान दें कि आप शीर्ष पर OS X संस्करण का चयन कर सकते हैं, क्योंकि प्रारूप / विकल्प विभिन्न OS X रिलीज़ के बीच भिन्न होते हैं)
StartCalendarInterval
दो शब्दकोशों की एक सरणी के साथ, दोनों कुंजी Minute
और एक बार के मूल्य के साथ 00
और एक बार 30
ठीक वही करेंगे जो आपने अनुरोध किया है। कृपया भविष्य में प्रश्नों के रूप में प्रश्न पूछें, टिप्पणियों के रूप में नहीं, फिर मैं आपको अंतिम शब्दकोष भी दिखा सकता हूं (मैं टिप्पणी में ऐसा नहीं कर सकता)। यह साइट सवाल पूछने के बारे में है। यदि आप प्रश्न पर किसी को संकेत देना चाहते हैं, तो प्रश्न के लिंक को टिप्पणी के रूप में पोस्ट करें, लेकिन प्रश्न ही नहीं।
आप बहुत सुविधाजनक प्लास्ट जनरेटर का उपयोग कर सकते हैं: http://launched.zerowidth.com/ (कुछ भी खरीदने की आवश्यकता नहीं ...)
यह आपको पहले से ही सुझाए गए लॉन्च के साथ एक नई अनुसूचित नौकरी को पंजीकृत करने के लिए एक शेल-लाइनर देगा
MacOSX पर, आपके पास कम से कम निम्नलिखित विकल्प हैं:
व्यक्तिगत अनुभव से, क्रोन सबसे विश्वसनीय है। जब मैंने परीक्षण किया, तो लॉन्च में कई बग और क्विरक्स थे। iCal अलार्म केवल तभी चलते हैं जब आप लॉग इन होते हैं (लेकिन ऐसा कुछ हो सकता है जिसे आप पसंद करते हैं)।
जैसा कि मेकी ने बताया, लॉन्चड इसके साथ जाने का रास्ता होगा। लॉन्च के लिए GUI इंटरफ़ेस है जिसे लिंगोन कहा जाता है जिसे आप चेक आउट करना चाह सकते हैं, जैसा कि लॉन्च फ़ाइलों को हाथ से संपादित करने का विरोध किया गया है:
लिंगोन मैक ओएस एक्स तेंदुए 10.5 के लिए एक संपादन लॉन्च विन्यास फाइल बनाने के लिए एक ग्राफिकल यूजर इंटरफेस है।
[स्निप ...]
कॉन्फ़िगरेशन फ़ाइल का संपादन इस संस्करण में पहले से कहीं अधिक आसान है और इसमें दो अलग-अलग मोड हैं। बेसिक मोड जिसकी सबसे सामान्य सेटिंग्स बहुत ही सरल इंटरफ़ेस और एक्सपर्ट मोड में आसानी से उपलब्ध हैं जहां आप सभी सेटिंग्स को सीधे टेक्स्ट में जोड़ सकते हैं या मेनू के माध्यम से सम्मिलित कर सकते हैं।
MAC OS में एक Automator टूल है जो विंडोज़ में टास्क शेड्यूलर के समान है । और ऑटोमेटर का उपयोग करके आप दैनिक आधार पर कार्यों को शेड्यूल कर सकते हैं और दैनिक समय पर स्क्रिप्ट चलाने के लिए आवर्ती कैलेंडर ईवेंट के साथ कार्य को लिंक कर सकते हैं। मैक ओएस में दैनिक आधार पर स्क्रिप्ट चलाने के लिए लिंक देखें
FYI करें: जबकि मैं ऐसा करने से चूक जाता हूँ, यह क्रिप्टोकरेंसी है, क्रोन OS X पर अतीत की बात है। यह पैंथर पर नजर रखने वाला था। टाइगर के बाद से इसे लॉन्च किया गया है। तो अगर आप तेंदुआ क्रोन चला रहे हैं तो कोई विकल्प नहीं है।
कार्यों को शेड्यूल करने के लिए आप क्रोन का उपयोग कर सकते हैं।
crontab -e
निम्नलिखित प्रारूप में एक नौकरी निर्दिष्ट की जाती है।
* * * * * command to execute
│ │ │ │ │
│ │ │ │ └─── day of week (0 - 6) (0 to 6 are Sunday to Saturday, or use names; 7 is Sunday, the same as 0)
│ │ │ └──────── month (1 - 12)
│ │ └───────────── day of month (1 - 31)
│ └────────────────── hour (0 - 23)
└─────────────────────── min (0 - 59)
उदाहरण:
0 12 * * * cd ~/backupfolder && ./backup.sh
एक बार जब आप अपने क्रोन कार्यों को स्थापित कर लेते हैं, तो आप अपने कार्यों को सूचीबद्ध करने के लिए crontab -l का उपयोग कर सकते हैं।
crontab -l
यदि आप क्रोन शेड्यूल एक्सप्रेशन के बारे में अधिक जानना चाहते हैं, तो आप एक्सेस कर सकते हैं
https://crontab.guru https://ole.michelsen.dk/blog/schedule-jobs-with-crontab-on-mac-osx.html