Cron.hourly नहीं चलेगा


54

ठीक है, तो मैंने अपनी स्क्रिप्ट बनाई है, मैंने इसे /etc/cron.hourlyतब chmod 777फ़ाइल में गिरा दिया, लेकिन यह स्वचालित रूप से नहीं चलेगा। अगर मैं इसे मैन्युअल रूप से चलाता हूं, तो यह ठीक काम करता है। क्या मुझे कुछ और करने की ज़रूरत है?


इस उत्तर को फ़ाइल और सामग्री के नाम के बिना बहुत सारे अपवोट प्राप्त नहीं होने चाहिए।
उपयोगकर्ता अज्ञात

जवाबों:


13

Crontab (/ etc / crontab) का उपयोग क्यों नहीं कर रहे हैं और घंटे के क्षेत्र में * / 1 का उपयोग करते हैं। मैंने इसका उपयोग प्रत्येक 5 मिनट में स्क्रिप्ट चलाने के लिए किया है और यह अच्छी तरह से काम करता है:

# m h dom mon dow user  command
* */1  * * *   user    command

6
cron.dailyअगर मशीन हर समय नहीं चल रही है, तो मित्र और मित्र थोड़ा बेहतर काम करते हैं , क्योंकि एनाक्रॉन सही शेड्यूल का अनुमान लगाने की कोशिश करता है, जबकि मशीन पूरी रात नहीं चलती है। प्रति घंटा की नौकरियों के लिए यह शायद इतना मायने नहीं रखता है।
पूली

9
मैं वास्तव में अगले उत्तर की सराहना करता हूं, क्योंकि यह समस्या को हल करने के बजाय cron.hourly के साथ समस्या को संबोधित करता है।
१४:१४ की

4
यह प्रश्न का उत्तर नहीं है
josh123a123

@poolie के रूप में पर देखा जा सकता है/etc/crontab : cron.daily, cron.weeklyऔर cron.monthly anacron के साथ चलाने (यदि उपलब्ध हो), लेकिन प्रति घंटा run-parts --report /etc/cron.hourly
पाब्लो ए

144

प्रविष्टियां cron.hourlyरन-पार्ट्स तंत्र ( man run-partsअधिक जानकारी के लिए) द्वारा संचालित की जाती हैं । और run-partsक्या फाइलनाम को वैध मानता है, इसके बारे में विकल्प नहीं है।

उदाहरण के लिए, आपकी स्क्रिप्ट को विस्तार देने से यह अमान्य हो जाएगा और परिणाम यह होगा कि नौकरी नहीं चल रही है। [a-zA-Z0-9_-]मान्य वर्ण हैं, इसलिए '।' इसे अमान्य बनाता है।

जब /etc/cron.hourly(या .daily, .weeklyआदि) के लिए एक नौकरी जोड़ते हैं , तो हमेशा परीक्षण करें कि run-partsवास्तव में इसे कमांड जारी करके चलाया जाएगा:

run-parts --test /etc/cron.hourly

यदि इस कमांड को चलाने से यह आपकी फाइल को दिखाता है तो इसका मतलब है कि यह काम कर रहा है अन्यथा, यदि आपकी फ़ाइल का नाम कुछ भी नहीं दिखा है तो यह मान्य नहीं है।

आपकी स्क्रिप्ट का नाम क्या था?


वहाँ दो हैं: cerebro_random_response.sh और Cerebro तापमान। यह अच्छा नहीं है?
स्विचकिक

21
सही, अच्छा नहीं :) [a-zA-Z0-9_-] मान्य वर्ण हैं, इसलिए '।' इसे अमान्य बनाता है। यह वही है जो मैं ऊपर से मतलब था 'आपकी स्क्रिप्ट को विस्तार देने से यह अमान्य हो जाएगा'
DaithiF

11
ओएमजी, यह सिर्फ एक बड़ा सिरदर्द बचा। धन्यवाद! giving your script an extension will make it invalid and result in the job not being run
जोनाथन एस। फिशर

आप --reportवास्तव में स्क्रिप्ट चलाने के लिए भी उपयोग कर सकते हैं ।
पाब्लो ए

5

आपकी समस्या संभवतः अत्यधिक खुली अनुमतियों के लिए है, जो किसी को भी आपकी फ़ाइल को संपादित करने की अनुमति देती है। 755इसके बजाय कोशिश करें ।

अपने syslog आउटपुट में क्रोन प्रविष्टियों को देखते हुए इसकी पुष्टि करनी चाहिए।


4

DaithiF का उत्तर सही उत्तर होना चाहिए।

इसके अलावा, मेरी स्क्रिप्ट #!/bin/bashपहली पंक्ति में नहीं थी। भले ही स्क्रिप्ट को कमांड लाइन के साथ निष्पादित किया जा सकता है, run-partsलेकिन इसे "एक्से प्रारूप प्रारूप" कहते हुए खारिज कर दिया।

से फ़ाइल नाम बदलने से scriptname.shकरने के लिए scriptnameऔर जोड़ने #!/bin/bashमें पहली पंक्ति मेरी स्क्रिप्ट सक्षम प्रति घंटा चलाने के लिए।


-1

जब तुम दौड़ते हो

crontab -l

क्या यह कार्य सूची में है?

यदि नहीं, तो इसे जोड़ें

crontab -e

इस लाइन को जोड़ें

0 * * * * yourScript

यदि यह इस सूची में है, तो अपनी स्क्रिप्ट के शीर्ष पर भाषा की प्रोग्रामिंग का मार्ग जोड़ने का प्रयास करें

उदाहरण:

bash: #!/bin/bash

यह 2 चीजें हमेशा मेरी समस्याओं को हल करती हैं :)


हो गया यह सब और स्क्रिप्ट अच्छी है, यह आकर्षण की तरह काम करती है। यह crontab सूची में भी है, लेकिन प्रति घंटा कोई कार्य नहीं चलता है। वैसे भी धन्यवाद :(
स्विचकिक
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.