2009-09-28 17 views
6

पर विफल रहता है काम करता है के रूप में उम्मीद:क्रॉन एक apostrophe

date +'%d-%b-%Y-%H-%M' 

28-Sep-2009-14-28

लेकिन crontab से निम्नलिखित 4 प्रविष्टियों में से कोई भी काम कर रहे हैं।

 
* * * * * date +\'%d-%b-%Y-%H-%M\' >> /backup/shantanu/testing.txt 
* * * * * date +'%d-%b-%Y-%H-%M' >> /backup/shantanu/testing1.txt 
* * * * * date +"%d-%b-%Y-%H-%M" >> /backup/shantanu/testing2.txt 
* * * * * date +\"%d-%b-%Y-%H-%M\" >> /backup/shantanu/testing3.txt 
 
Error: 
/bin/sh: -c: line 0: unexpected EOF while looking for matching `"' 
/bin/sh: -c: line 1: syntax error: unexpected end of file 

मैं एक खोल स्क्रिप्ट में एक ही कोड को बचा सकता है और क्रॉन सेट है, लेकिन मुझे पता है कि अगर यह सीधे कार्य के लिए एक क्रॉन सेट करना संभव है पसंद आएगा।

वास्तविक क्रॉन प्रविष्टि है कि मैं स्थापित करने के लिए कोशिश कर रहा हूँ कुछ इस तरह दिखता ...

16 * * * * mysqldump myDB myTB > /backup/ABCbc$(date +'%d-%b-%Y-%H-%M').sql 2> /backup/ABCbc_errORS$(date +'%d-%b-%Y-%H-%M').txt
+0

यदि आपने अपनी समस्या का समाधान किया है, तो कृपया इसे उत्तर के रूप में पोस्ट करें। –

+0

58 13 * * */usr/bin/mysqldump -uroot -pPassWord --compact - डेटाबेस db1 db2 db3 db4 | ज़िप>/home/develop/backup/central_mydt $ (दिनांक + '\% d \% m \% y')। ज़िप – shantanuo

उत्तर

17

क्रॉन जॉब के लिए चार आम कारण होते हैं एक इंटरैक्टिव खोल में सीधे लिखी आदेशों की तुलना में अलग तरह से व्यवहार करने के लिए आदेश:

  • क्रॉन, एक सीमित वातावरण प्रदान करता है उदाहरण के लिए, एक न्यूनतम $PATH, और अन्य की उम्मीद चर गायब है।
  • क्रॉन डिफ़ॉल्ट रूप से /bin/sh को आमंत्रित करता है, जबकि आप किसी अन्य शैल को इंटरैक्टिव रूप से उपयोग कर सकते हैं।
  • क्रॉन % चरित्र विशेष रूप से व्यवहार करता है (यह कमांड में एक नई पंक्ति में बदल जाता है)।
  • आदेश अलग-अलग व्यवहार कर सकता है क्योंकि इसमें टर्मिनल उपलब्ध नहीं है।

आप एक crontab फ़ाइल है, जो बताता है कि क्रॉन आदेश में एक % डाल करने के लिए, उदा \ के साथ सभी % पात्रों पूर्व में होना चाहिए

 
16 * * * * mysqldump myDB myTB > "/backup/ABCbc$(date +'\%d-\%b-\%Y-\%H-\%M').sql" 2> "/backup/ABCbc_errORS$(date +'\%d-\%b-\%Y-\%H-\%M').txt" 

(एक अलग मामले के रूप में, हमेशा की तरह, एक "$variable_substitution" या एक "$(command substitution)" को दोहरे उद्धरण चिह्नों डाल जब तक तुम जानते हो क्यों एक विशेष मामले में ऐसा नहीं। अन्यथा, यदि चर सामग्री या आदेश उत्पादन होता है खाली स्थान या ?*\[, उन्हें खोल द्वारा व्याख्या किया जाएगा।)

0

जब तक प्रारूप स्ट्रिंग तारीख करने के लिए एक तर्क के रूप में आपूर्ति की में कोई रिक्त स्थान हैं, तो आप की जरूरत नहीं होनी चाहिए सभी पर टिकटें।

date +%d-%b-%Y-%H-%M 

काम करना चाहिए।

+0

मैंने उपर्युक्त उद्धरणों को हटा दिया है और यह अभी भी क्रॉन से काम नहीं करता है। यह एक कमांड लाइन से ठीक चलाता है। – shantanuo

0

आप एक वाक्यविन्यास का उपयोग कर रहे हैं जो/bin/sh द्वारा समर्थित नहीं है। अपने पसंदीदा खोल का आह्वान करने और कमांड को तर्क के रूप में पास करने का प्रयास करें।

+0

क्या आप विस्तृत कर सकते हैं? – shantanuo

+0

आप किस शैल का उपयोग कर रहे हैं? –

+0

इसे मिला। धन्यवाद। समस्या सुलझ गयी। – shantanuo

संबंधित मुद्दे