शेल स्क्रिप्ट चलाने के लिए क्रोन जॉब कैसे सेट करें?


44

मैंने क्रॉन जॉब सेट किया था:

20 * * * * /usr/bin/sh /home/lucky/myfile.sh

मुख्य समस्या यह है कि अनुसूची समय पर, एक त्रुटि है: "मेल ने / var / स्पूल / मेल / भाग्यशाली को भेजा है"।

Myfile.sh की सामग्री है:

mkdir jh
cd jh 

इससे आपको मदद मिल सकती है: help.ubuntu.com/community/CronHowto
PeppeDAlterio

2
यदि myfile.sh निष्पादन योग्य के रूप में सेट है?
रॉगरडपैक

जवाबों:


60

यह एक स्क्रिप्ट के लिए ठीक नहीं है जिसे क्रॉन जॉब के रूप में सेट किया गया है:

mkdir jh
cd jh 

आपको वह पूरा रास्ता देना चाहिए जहाँ jhनिर्देशिका बनाई जानी चाहिए। इसके अलावा, इस रास्ते में आपको नई फाइलें / निर्देशिका बनाने की अनुमति होनी चाहिए।

उदाहरण के लिए, आपकी स्क्रिप्ट इस तरह दिखनी चाहिए:

#!/bin/sh

mkdir /home/lucky/jh
cd /home/lucky/jh

इसके /usr/bin/shलिए सही रास्ता भी नहीं है sh। सही रास्ता है /bin/sh। आप इसे whereis shकमांड से चेक कर सकते हैं । और फिर भी, आपकी क्रोन जॉब इस तरह दिखनी चाहिए:

20 * * * * /home/lucky/myfile.sh

स्क्रिप्ट को निष्पादन योग्य बनाना न भूलें:

chmod +x /home/lucky/myfile.sh

Awsome, मेरी जान बचाई :) खान इस तरह ठीक काम करता है। ० 0 * * * * / बिन / श / आरोह / लिखावट / मुकुट.श> / देव / अशक्त २> & १
लौकी

5

जिस पथ पर यह फ़ोल्डर बनाना प्रतीत होता है वह है /। ऐसा इसलिए है क्योंकि इसे निष्पादित करने वाली सभी फ़ाइलों में फ़ोल्डर और फ़ाइलों के लिए पूर्ण पथ की crontabआवश्यकता होती है ।

तो myfile.sh में पथ होना चाहिए

mkdir <absolutePath>/jh

cd <absolutePath>/jh

20 * * * * /usr/bin/sh /home/lucky/myfile.shयह रेखा सही है, हालांकि आपको यह देखने के लिए पथ की जांच करनी चाहिए कि क्या sh / usr / bin / sh पर मौजूद है या नहीं ( which shपथ को देखने के लिए उपयोग करें जहां sh मौजूद है; मेरा / bin / sh)

यदि आप crontab लिखना शुरू करने की जल्दी में हैं तो इस लिंक के बहुत अच्छे उदाहरण हैं

http://www.thegeekstuff.com/2009/06/15-practical-crontab-examples/

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