Crontab - निर्देशिका में चलाएँ


170

मैं रूट क्राउटैब में रोजाना नौकरी करना चाहता हूं। लेकिन मैं चाहूंगा कि इसे एक विशेष निर्देशिका से निष्पादित किया जाए ताकि यह सभी फाइलों को इसकी आवश्यकता हो, क्योंकि आवेदन में सापेक्ष पथों का एक गुच्छा है।

वैसे भी, मैं crontab को किसी विशेष निर्देशिका से चलाने के लिए कह सकता हूं?

जवाबों:


318

सभी नौकरियों को एक शेल द्वारा निष्पादित किया जाता है, इसलिए निर्देशिका को बदलने के लिए कमांड द्वारा उस शेल स्निपेट को शुरू करें।

cd /path/to/directory && ./bin/myapp

के &&बजाय के उपयोग के बारे में ;: आम तौर पर यह एक फर्क नहीं पड़ता, लेकिन अगर cdकमांड विफल रहता है (जैसे कि निर्देशिका मौजूद नहीं है) &&आवेदन के साथ निष्पादित नहीं किया जाता है, जबकि इसके साथ ;निष्पादित (लेकिन इच्छित निर्देशिका में नहीं है) )।


ज्यादातर डुप्लिकेट उत्तर जोड़ने के बजाय, मुझे बस यह जोड़ने दें कि आप SHELLअपने कोंट्राब में सेटिंग करके किस शेल (यदि आपको श के बजाय bash की आवश्यकता है, उदाहरण के लिए चुन सकते हैं) ।
Edd Steel

12
+1। हर दूसरे संबंधित प्रश्न का हल स्क्रिप्ट को पूर्ण पथ के साथ फिर से लिखना है। यह वही है जो मुझे चाहिए था
कॉनरैड।

2
जिज्ञासा से बाहर, क्या आप ;डबल एम्परसेंड के बजाय एक अर्ध-उपनिवेश का उपयोग कर सकते हैं &&या यह काम नहीं करेगा? और क्यों?
जोशुआ पिंटर

32
@JoshPinter आम तौर पर इससे कोई फर्क नहीं पड़ता। लेकिन अगर cdकमांड विफल रहता है (जैसे कि निर्देशिका मौजूद नहीं है), तो &&, एप्लिकेशन निष्पादित नहीं होता है। इसके साथ ;, यह निष्पादित है (लेकिन इच्छित निर्देशिका में नहीं)।
गिलेस एसओ- बुराई को रोकना '

1
मैं अपने ऐप्स के सभी क्रोन जॉब्स के लिए करूंगा, आपने मुझे अपनी सोर्स फाइल्स बदलने से बचाया, बहुत-बहुत धन्यवाद
अकाउंटेंट एन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.