क्या crontab -e में चर का उपयोग करना संभव है?


9

क्या में कह सकता हूँ:

MYPATH=/root/scripts  
MYSCRIPT=doit.sh

0 1 * * * $MYPATH/$MYSCRIPT

में crontab -e?

क्या चर का उपयोग करना संभव है crontab -e?

जवाबों:


11

हां, आप चर को इस तरह से परिभाषित और उपयोग कर सकते हैं। एक सीमा है (जिसे आपने अपने उदाहरणों में नहीं मारा है): =संकेत के दाईं ओर स्थित स्ट्रिंग की शाब्दिक रूप से व्याख्या की गई है, जिसमें प्रमुख स्थान हटा दिए गए हैं, इसलिए आप FOO=$BAR/quxजैसे निर्माणों का उपयोग नहीं कर सकते हैं (जैसे PATH=$HOME/bin:$PATHकि कुछ भी उपयोगी नहीं होगा)।

यह प्रलेखन में कहा गया है, जिसे आप चलाकर देख सकते हैं

man 5 crontab

(ध्यान दें कि मैनुअल के खंड 1 में कमांडman crontab के प्रलेखन को दिखाया गया है ; आप फ़ाइल प्रारूप के दस्तावेज को अनुभाग में चाहते हैं)crontab crontab


6

बस एक कोशिश की, हाँ यह संभव है। आप इसे इस सरल उदाहरण के साथ समझ सकते हैं, इसे अपने में रखें crontab:

Foo = qwerty
* * * * * गूंज $ FOO> ~ / आउट

और फ़ाइल ~/out(हर मिनट अपडेट की गई) की जांच करें , इसमें शामिल होना चाहिए "qwerty"


1
+1 यह दिखाने के लिए कि कैसे ओपी अपने दम पर समान चीजों का पता लगा सकता है।
22

एक बेहतर उदाहरण लक्ष्य स्क्रिप्ट के अंदर $ FOO का उपयोग करेगा।
एक्यूमेनस

4

जबकि लिनक्स क्रॉन्स्टैब शाब्दिक मूल्यों को धारण करने वाले कुछ चरों को परिभाषित करने का समर्थन करता है, यह एक छोटे प्रतिनिधित्व के लिए लंबे पाठ को संघनित करने या क्रोन के बारे में कुछ चीजों को नियंत्रित करने के अलावा ज्यादा उपयोग नहीं करता है, जैसे कि ईमेल आउटपुट कहां भेजें।

लचीलापन समझ रहा है कि क्रोन प्रविष्टि का कमांड भाग विक्सी क्रोन (आमतौर पर लिनक्स सिस्टम पर स्थापित एक) का उपयोग कर सिस्टम पर /bin/sh -cपरिभाषित शेल से पारित किया जाएगा SHELL। इसका मतलब यह है कि कमांड लाइन का शेष भाग एक सरल शेल स्क्रिप्ट है। नोट: महसूस करें कि किस शेल का उपयोग किया जा रहा है। लिनक्स /bin/shपर आम तौर पर /bin/bashइसलिए $( ... )एम्बेडेड कमांड काम करता है, लेकिन यह पुराने सिस्टम पर नहीं होगा जहां /bin/shकेवल `इसके बजाय समझता है ।

उदाहरण के लिए, मेरे पास एक साधारण crontab लाइन है जो मासिक रूप से सहेजे गए संदेशों की एक MBX फ़ाइल संग्रहीत करती है और इसे संपीड़ित करती है। यह इस तरह दिख रहा है:

15 0 1 * *  nf=MailFeed-$( date +\%Y\%m ).mbx && cd Logs && mv MailFeed.mbx $nf && bzip2 -9 $nf

यह प्रत्येक महीने की पहली सुबह 12:15 बजे चलेगा, इसमें CCYYMM के साथ एक नया फ़ाइल नाम सेट करें, वर्तमान फ़ाइल को नए नाम पर ले जाएं और इसे संपीड़ित करें। याद रखने वाली बात यह है कि एक अप्रकाशित %(प्रतिशत चिह्न) को एक नई रेखा के रूप में माना जाएगा और इसके बाद डेटा को प्रतिशत संकेत से पहले कमांड के रूप में भेजा जाएगा। इसीलिए सामान्य date +Y+mको date +\%Y\%mऊपर लिखा गया है।


-2

नहीं, आप एक क्रोनजॉब नहीं कर सकते हैं केवल क्रोन आइटम हो सकते हैं। क्या यह क्रॉश-स्क्रिप्ट बनाने और क्रॉन्जॉब के माध्यम से बैश-स्क्रिप्ट चलाने का विकल्प नहीं है?


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