मैं क्रॉन जॉब में कर्ल का उपयोग कैसे करूं?


12

मुझे cpanel में एक क्रोन जॉब सेट करने की आवश्यकता है जो सप्ताह में एक बार एक ही सर्वर पर (उसी सर्वर पर) कॉल करता है। मैं wget का उपयोग करने जा रहा था, लेकिन यह पता चला कि यह साझा किए जा रहे सर्वर पर अक्षम है।

वहाँ एक विकल्प है wget ? मैंने सुना है कि कर्ल का उपयोग किया जा सकता है लेकिन मुझे नहीं पता कि इसे क्रॉन कमांड में कैसे सेट किया जाए।

इसके अलावा, क्रोनजॉब को पूरा करने पर कुछ भी करने की आज्ञा क्या है?

किसी भी विचार बहुत सराहना की!


1
यदि आप इसका उपयोग कर सकते हैं तो क्या होगा?
user9517

वे मामले में कर्ल को अक्षम होने की अनुमति क्यों देंगे?
औरोल

@ मुख्य - PHP स्क्रिप्ट
davidhyland

@Andol - बहुत अच्छा सवाल। बस यह कैसा है
davidhyland

जवाबों:


20

विग का उपयोग करने के बजाय, कर्ल इस तरह से काम करता है:

curl --silent http://domain.com/cron.php

जो wget की तरह ही काम करेगा। यदि इसकी एक php फ़ाइल जो आप लॉन्च कर रहे हैं, तो क्या कोई कारण है कि आप इसे कमांड लाइन php दुभाषिया के माध्यम से नहीं चला सकते हैं:

php -q /path/to/cron.php

एक वेबसर्वर अनुरोध पर एक ही और अक्सर बहुत तेजी से और बिना कुछ समय के प्रतिबंध के बिना काम करेगा जब वेबसर्वर / कर्ल के माध्यम से कहा जाता है


कर्ल को उस तरह से कॉल करना परिणाम को प्रिंट करना होगा। यदि आप wget के समतुल्य व्यवहार करना चाहते हैं, और आउटपुट को url के आधार पर फ़ाइल नाम में सहेजना चाहते हैं, तो आप --remote-name ध्वज को भी जोड़ना चाहते हैं।
औरोल

- Thesilent का मतलब है कि कोई प्रतिक्रिया या आउटपुट नहीं है?
दाविद्यालैंड

1
इसके अलावा, कमांड लाइन से php स्क्रिप्ट को कॉल करने से जरूरी नहीं कि उसी परिणाम का परिणाम हो। विभिन्न विन्यास की संभावना के अलावा इस तरह से एक अलग उपयोगकर्ता के रूप में चलाए जा रहे स्क्रिप्ट का असामान्य परिदृश्य भी नहीं है। यह सब सेटअप पर निर्भर करता है।
औरोल

ठीक है, मुझे यह "कर्ल --silent domain.com/script.php > / dev / null 2> & 1" का उपयोग करके काम करने के लिए मिला, लेकिन यह "कर्ल -o-url domain.com/script.php > के साथ भी ठीक काम करता है। / dev / null 2> & 1 "क्या अंतर है?
डेविडविलेलैंड

1
पहला कमांड सभी आउटपुट को / dev / null में भेजता है, दूसरा -urlस्क्रिप्ट चलाने वाले उपयोगकर्ता की होम डायरेक्टरी में एक फाइल बनाएगा , जिसमें आपकी php फाइल का आउटपुट होता है, अन्य सभी आउटपुट / dev / null में जाते हैं।
user9517

6

यदि कर्ल उपलब्ध है, तो आप कुछ पसंद कर सकते हैं

1 1 * * 0  /usr/bin/curl --silent http://example.come/some.php &>/dev/null

इसके कारण कर्ल पूरी तरह से शांत हो जाना चाहिए ताकि आपको इसे पूरा करने पर कोई ईमेल न मिले।


4
मैं विकल्प का उपयोग करने की सलाह दूंगा - त्रुटि भी, इसलिए यह सामान्य ऑपरेशन के लिए चुप है, लेकिन ऐसा होने पर त्रुटि उत्पन्न होगी।
एमिनो

6

मैं -silent के अलावा "-m" पैरामीटर जोड़ने का सुझाव दूंगा क्योंकि यह पैरामीटर स्थानांतरण के लिए अधिकतम समय निर्धारित करता है। कल्पना करें कि आप हर मिनट क्रॉन को कॉल करते हैं और स्क्रिप्ट 2mins लेता है - इससे सर्वर लोड या अन्य चीजों पर बुरा प्रभाव पड़ सकता है।

1 1 * * 0  /usr/bin/curl -m 120 -s http://example.come/some.php &>/dev/null
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.