जवाबों:
हां, आप चर को इस तरह से परिभाषित और उपयोग कर सकते हैं। एक सीमा है (जिसे आपने अपने उदाहरणों में नहीं मारा है): =
संकेत के दाईं ओर स्थित स्ट्रिंग की शाब्दिक रूप से व्याख्या की गई है, जिसमें प्रमुख स्थान हटा दिए गए हैं, इसलिए आप FOO=$BAR/qux
जैसे निर्माणों का उपयोग नहीं कर सकते हैं (जैसे PATH=$HOME/bin:$PATH
कि कुछ भी उपयोगी नहीं होगा)।
यह प्रलेखन में कहा गया है, जिसे आप चलाकर देख सकते हैं
man 5 crontab
(ध्यान दें कि मैनुअल के खंड 1 में कमांडman crontab
के प्रलेखन को दिखाया गया है ; आप फ़ाइल प्रारूप के दस्तावेज को अनुभाग में चाहते हैं)crontab
crontab
बस एक कोशिश की, हाँ यह संभव है। आप इसे इस सरल उदाहरण के साथ समझ सकते हैं, इसे अपने में रखें crontab
:
Foo = qwerty * * * * * गूंज $ FOO> ~ / आउट
और फ़ाइल ~/out
(हर मिनट अपडेट की गई) की जांच करें , इसमें शामिल होना चाहिए "qwerty"
।
जबकि लिनक्स क्रॉन्स्टैब शाब्दिक मूल्यों को धारण करने वाले कुछ चरों को परिभाषित करने का समर्थन करता है, यह एक छोटे प्रतिनिधित्व के लिए लंबे पाठ को संघनित करने या क्रोन के बारे में कुछ चीजों को नियंत्रित करने के अलावा ज्यादा उपयोग नहीं करता है, जैसे कि ईमेल आउटपुट कहां भेजें।
लचीलापन समझ रहा है कि क्रोन प्रविष्टि का कमांड भाग विक्सी क्रोन (आमतौर पर लिनक्स सिस्टम पर स्थापित एक) का उपयोग कर सिस्टम पर /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
ऊपर लिखा गया है।