CPanel का उपयोग करके क्रोन जॉब में एक PHP फ़ाइल चलाएं


102

मैं सिर्फ CPanel के भीतर क्रॉन जॉब का उपयोग करके PHP स्क्रिप्ट चलाने की कोशिश कर रहा हूं - क्या यह सही सिंटैक्स है:

/usr/bin/php -q /home/username/public_html/cron/cron.php >/dev/null

मुझे कोई ईमेल सूचना नहीं मिल रही है जिसमें बताया गया है कि क्रोन पूरा हो गया है, क्या मुझे PHP फ़ाइल के साथ कुछ विशिष्ट करने की आवश्यकता है?


25
मुझे लगता है कि यह काफी प्रासंगिक है क्योंकि Cpanel पर कई परियोजनाओं की मेजबानी की जा रही है, और किसी को यह जानने की आवश्यकता होगी कि यदि जरूरत हो तो क्रोन नौकरियां कैसे चलाएं
विलियम

7
यदि सर्वर दोष या स्टैक ओवरफ्लो पर cPanel की अनुमति नहीं है, तो इसके बारे में प्रश्न कहां होना चाहिए?
ब्रिमस्टोन

8
काफी विडंबना यह है कि इस सवाल को स्टैकऑवरफ्लो के लिए 'ऑफ-टॉपिक' के रूप में वर्गीकृत किया गया था, लेकिन सबसे सक्रिय प्रश्न जो मैंने कभी यहां एक था ..... मुझे आशा है कि यह दूसरों की मदद करता है :)
Zabs

Thanx @ ततु उलेमेन यह मेरे लिए काम करता है!
तुषार रमेश सैदन ५

जवाबों:


66

Crontab प्रणाली में:

  • /usr/bin/phpहै php बाइनरी पथ (कुछ सिस्टम में अलग पूर्व: फ्रीबस /usr/local/bin/php, लिनक्स:/usr/bin/php )
  • /home/username/public_html/cron/cron.php आपका php स्क्रिप्ट पथ होना चाहिए
  • /dev/null क्रोन आउटपुट होना चाहिए, पूर्व: /home/username/stdoutx.txt

तो आप क्रॉन आउटपुट देखकर अपने क्रोन की निगरानी कर सकते हैं /home/username/stdoutx.txt


1
मैं अब इसका उपयोग कर रहा हूं और यह काम करता है लेकिन मुझे कोई भी ईमेल सूचना नहीं मिलती है, क्यों नहीं? php /home/username/public_html/cron/cron.php नोट मुझे PHP स्क्रिप्ट # के शीर्ष पर निम्न पंक्ति रखनी थी! / usr / bin / php -q
Zabs

यदि आप चाहते हैं कि क्रोनजॉब यू के लिए ईमेल भेजें, तो आपको php मेल () का उपयोग करना चाहिए, मुझे नहीं लगता कि क्रोनजॉब में स्वचालित मेल सिस्टम है, जब तक कि यू शेल स्क्रिप्टिंग या php का उपयोग नहीं करता है।
सोमी ए

1
जब मैं cPanel में "cronjobs" टैब पर क्लिक करता हूं, तो पृष्ठ पर दो बॉक्स होते हैं - एक उस कमांड के लिए जिसे आप निष्पादित करना चाहते हैं, और दूसरा उस ई-मेल पते के लिए जिसे आप आउटपुट भेजना चाहते हैं। यह cPanel 11.
user3640967

2
क्या होगी पूरी कमांड? मेरा मतलब है कि सभी विकल्पों के साथ एक पंक्ति में पूर्ण कमांड।
अनुज

@SomyA कृपया मुझे रन जावा स्क्रिप्ट फ़ाइल के लिए कमांड बता सकते हैं।
नरेंद्र रेड्डी

104

मैंने इस कमांड का उपयोग इसके लिए क्रोन जॉब को सक्रिय करने के लिए किया।

/usr/bin/php -q /home/username/public_html/yourfilename.php

Godaddy सर्वर पर, और इसके ठीक काम पर।


2
क्या -qखड़ा है?
भाविक शाह

4
@BhavikShah के अनुसार php.net/manual/en/features.commandline.options.php , -qशांत मोड के लिए है, दबा HTTP हेडर उत्पादन
विलियम

@William धन्यवाद। समझ गया।
भाविक शाह

29

>/dev/null मेल भेजने से क्रोन रोकता है।

वास्तव में मेरे दिमाग में यह बेहतर है कि phpस्क्रिप्ट बनाने के लिए खुद ही परवाह करें कि वह कुछ क्रोन करने के लिए केवल उत्पादन करने के बजाय लॉगिंग है


क्या मैं पूछ सकता हूं कि आप ऐसा कैसे करते हैं? वैसे भी कुछ करने के लिए cronTabs उत्पादन नहीं करता है? मैं >/dev/null 2>&1अंत में भी ऐसा करता हूं ...
थॉमस

@ThomasK यदि आप इस तरह एक कार्य करते हैं तो /path/to/file.php > /dev/nullयह चुप रहने वाला है।
k102

19

यह सबसे आसान तरीका है:

php -f /home/your_username/public_html/script.php

और अगर आप स्क्रिप्ट आउटपुट को किसी फ़ाइल में लॉग इन करना चाहते हैं, तो इसे कमांड के अंत में जोड़ें:

>> /home/your_username/logs/someFile.txt 2>&1


16

यह रास्ता है:

/usr/bin/php -q /home/username/public_html/yourfilename.php >/dev/null

11

इस क्रोन लाइन ने मेरे लिए hostgator VPS पर cpanel का उपयोग करके काम किया।

/usr/bin/php -q /home/username/public_html/scriptname.php

10

मुझे CPanel पर usr / usr / bin / php का उपयोग करने में समस्या है क्योंकि इसे "cgi-fcgi" बाइनरी के रूप में संकलित किया गया है और "cli" नहीं। / Usr / स्थानीय / बिन / php या, का उपयोग करने का प्रयास करें, क्योंकि यह वैसे भी पहले रास्ते में है, बस इसके बजाय 'php' का उपयोग करें:

php /path/to/script.php

यदि आप स्क्रिप्ट को एक निष्पादन योग्य के रूप में चलाना चाहते हैं, तो इसे + x अनुमति दें और स्क्रिप्ट की पहली पंक्ति के रूप में निम्न का उपयोग करें:

#!/usr/bin/env php

6

मुझे आशा है कि आपकी समस्या पथ और php बाइनरी के साथ भी है। यदि आपने पुराने उत्तर के अनुसार रास्ता तय कर लिया है, तो कृपया क्रॉन जॉब चलाते समय php कमांड के बजाय php-cli का उपयोग करें।

यह संभव हो सकता है php_sapi_name()वापस नहीं लौट रहा है cli। इसकी वापसी कुछ और है जैसे cgi-fcgiआदि।

/usr/bin/php-cli -q /home/username/public_html/cron/cron.php >/dev/null

मुझे उम्मीद है इससे मदद मिलेगी।


3

यह ठीक काम करता है और ईमेल भी भेजता है:

/ usr / bin / php /home/xxYourUserNamexx/public_html/xxYourFolderxx/xxcronfile.php

निम्नलिखित दो आदेश भी ठीक काम करते हैं लेकिन ईमेल नहीं भेजते हैं:

/ usr / bin / php -f / home / Same As above

php -f / home / Same As above




0

डोमेन विशिष्ट मल्टी PHP क्रोन जॉब के लिए, इस तरह करें,

/usr/local/bin/ea-php56 /home/username/domain_path/path/to/cron/script

उपरोक्त उदाहरण में, "ea-php56" को उस PHP संस्करण से बदलें, जिसे आप उपयोग करना चाहते हैं।

आशा है कि यह किसी की मदद करता है।

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