Crontab प्रविष्टि के लिए सिंटैक्स सही दिखता है। वास्तव में, यदि आप अपने crontab को " crontab -e
" का उपयोग करके संपादित करते हैं (जैसा कि आपको करना चाहिए), वैसे भी यदि आप एक वाक्यविन्यास अमान्य crontab प्रविष्टि निर्दिष्ट करते हैं तो आपको एक त्रुटि मिलेगी।
सबसे पहले, /path_to_my_php_script/info.php
कमांड-लाइन से सही ढंग से चलता है?
यदि हां, तो क्या यह भी सही तरह से चलता है ?:
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null)"
अगर वह काम करता है, तो क्या यह इस तरह काम करता है?
/bin/sh -c "(export PATH=/usr/bin:/bin; /path_to_my_php_script/info.php </dev/null >/dev/null 2>&1)"
चरण (3) समान है कि क्रोन आपके प्रोग्राम को कैसे चलाएगा (जैसा कि "मैन 5 क्रोन" में प्रलेखित है।
आपके द्वारा किए जा रहे सबसे संभावित समस्या यह है कि आपके प्रोग्राम को चलाने के लिए PATH क्रोन का उपयोग करना बहुत अधिक प्रतिबंधात्मक है। इसलिए, आप अपने क्रॉस्टैब प्रविष्टि के शीर्ष पर निम्नलिखित की तरह कुछ जोड़ना चाह सकते हैं (आपको अपनी स्क्रिप्ट में जो भी निर्देशिकाओं में जोड़ना होगा):
PATH=~/bin:/usr/bin/:/bin
यह भी ध्यान रखें कि क्रोन डिफ़ॉल्ट रूप से उपयोग किया जाएगा /bin/sh
, न कि बैश। यदि आपको बैश की आवश्यकता है, तो इसे अपनी crontab फ़ाइल की शुरुआत में भी जोड़ें:
SHELL=/bin/bash
ध्यान दें कि वे दोनों परिवर्तन सभी क्रॉस्टैब प्रविष्टियों को प्रभावित करेंगे । यदि आप अपने info.php
प्रोग्राम के लिए इन मानों को संशोधित करना चाहते हैं , तो आप कुछ ऐसा कर सकते हैं:
*/2 * * * * /bin/bash -c ". ~/.bashrc; /path_to_my_php_script/info.php"
यह भी ध्यान देने योग्य है कि "मेल" के लिए कॉन्फ़िगर किए गए सिस्टम पर (दूसरे शब्दों में एक सिस्टम जिसमें एमटीए कॉन्फ़िगर किया गया है [Sendmail / पोस्टफिक्स / आदि]), crontab प्रोग्राम से सभी आउटपुट स्वचालित रूप से आपको ईमेल के माध्यम से भेजे जाते हैं। एक डिफ़ॉल्ट उबंटू डेस्कटॉप सिस्टम में स्थानीय मेल कॉन्फ़िगर नहीं होगा, लेकिन यदि आप एक सर्वर पर काम कर रहे हैं तो आप उन सभी क्रोन मेलों को देखने के लिए टर्मिनल में "मेल" टाइप कर सकते हैं। यह " at
" कमांड पर भी लागू होता है ।