ठीक है, तो मैंने अपनी स्क्रिप्ट बनाई है, मैंने इसे /etc/cron.hourlyतब chmod 777फ़ाइल में गिरा दिया, लेकिन यह स्वचालित रूप से नहीं चलेगा। अगर मैं इसे मैन्युअल रूप से चलाता हूं, तो यह ठीक काम करता है। क्या मुझे कुछ और करने की ज़रूरत है?
ठीक है, तो मैंने अपनी स्क्रिप्ट बनाई है, मैंने इसे /etc/cron.hourlyतब chmod 777फ़ाइल में गिरा दिया, लेकिन यह स्वचालित रूप से नहीं चलेगा। अगर मैं इसे मैन्युअल रूप से चलाता हूं, तो यह ठीक काम करता है। क्या मुझे कुछ और करने की ज़रूरत है?
जवाबों:
Crontab (/ etc / crontab) का उपयोग क्यों नहीं कर रहे हैं और घंटे के क्षेत्र में * / 1 का उपयोग करते हैं। मैंने इसका उपयोग प्रत्येक 5 मिनट में स्क्रिप्ट चलाने के लिए किया है और यह अच्छी तरह से काम करता है:
# m h dom mon dow user command
* */1 * * * user command
cron.dailyअगर मशीन हर समय नहीं चल रही है, तो मित्र और मित्र थोड़ा बेहतर काम करते हैं , क्योंकि एनाक्रॉन सही शेड्यूल का अनुमान लगाने की कोशिश करता है, जबकि मशीन पूरी रात नहीं चलती है। प्रति घंटा की नौकरियों के लिए यह शायद इतना मायने नहीं रखता है।
/etc/crontab : cron.daily, cron.weeklyऔर cron.monthly anacron के साथ चलाने (यदि उपलब्ध हो), लेकिन प्रति घंटा run-parts --report /etc/cron.hourly।
प्रविष्टियां cron.hourlyरन-पार्ट्स तंत्र ( man run-partsअधिक जानकारी के लिए) द्वारा संचालित की जाती हैं । और run-partsक्या फाइलनाम को वैध मानता है, इसके बारे में विकल्प नहीं है।
उदाहरण के लिए, आपकी स्क्रिप्ट को विस्तार देने से यह अमान्य हो जाएगा और परिणाम यह होगा कि नौकरी नहीं चल रही है। [a-zA-Z0-9_-]मान्य वर्ण हैं, इसलिए '।' इसे अमान्य बनाता है।
जब /etc/cron.hourly(या .daily, .weeklyआदि) के लिए एक नौकरी जोड़ते हैं , तो हमेशा परीक्षण करें कि run-partsवास्तव में इसे कमांड जारी करके चलाया जाएगा:
run-parts --test /etc/cron.hourly
यदि इस कमांड को चलाने से यह आपकी फाइल को दिखाता है तो इसका मतलब है कि यह काम कर रहा है अन्यथा, यदि आपकी फ़ाइल का नाम कुछ भी नहीं दिखा है तो यह मान्य नहीं है।
आपकी स्क्रिप्ट का नाम क्या था?
giving your script an extension will make it invalid and result in the job not being run
--reportवास्तव में स्क्रिप्ट चलाने के लिए भी उपयोग कर सकते हैं ।
DaithiF का उत्तर सही उत्तर होना चाहिए।
इसके अलावा, मेरी स्क्रिप्ट #!/bin/bashपहली पंक्ति में नहीं थी। भले ही स्क्रिप्ट को कमांड लाइन के साथ निष्पादित किया जा सकता है, run-partsलेकिन इसे "एक्से प्रारूप प्रारूप" कहते हुए खारिज कर दिया।
से फ़ाइल नाम बदलने से scriptname.shकरने के लिए scriptnameऔर जोड़ने #!/bin/bashमें पहली पंक्ति मेरी स्क्रिप्ट सक्षम प्रति घंटा चलाने के लिए।
जब तुम दौड़ते हो
crontab -l
क्या यह कार्य सूची में है?
यदि नहीं, तो इसे जोड़ें
crontab -e
इस लाइन को जोड़ें
0 * * * * yourScript
यदि यह इस सूची में है, तो अपनी स्क्रिप्ट के शीर्ष पर भाषा की प्रोग्रामिंग का मार्ग जोड़ने का प्रयास करें
उदाहरण:
bash: #!/bin/bash
यह 2 चीजें हमेशा मेरी समस्याओं को हल करती हैं :)