2012-10-17 11 views
5

मैं सोच कर दिया गया है के लिए php, वहाँ एक क्रॉन जॉब बनाने जबकि wget के बीच एक अंतर [मापदंडों], कर्ल [मापदंडों] और php [मापदंडों] है?wget, कर्ल और cronjobs

अगर मैं एक स्क्रिप्ट "क्रॉन-00-00.php" है और मैं ऊपर उल्लेख किया है में से प्रत्येक के क्या करना होगा इसे चलाने के लिए की जरूरत है?

0 0 * * * php -q /your_abolute_path/includes/php/cron/cron-00-00.php >/dev/null 2>&1 
0 0 * * * wget -O - -q -t 1 http://your_domain_com/includes/php/cron/cron-00-00.php >/dev/null 2>&1 
0 0 * * * curl http://your_domain_com/includes/php/cron/cron-00-00.php 

या क्या यह किसी एक का उपयोग करने के लिए वैकल्पिक है (जिस पर सबसे अच्छा सूट है) के आधार पर?

मैं इस समय इस बारे में सोचा है कि उनमें से 3 अलग कार्य हैं। कृपया मेरी धारणाओं को सही करें।

+1

हाँ वहाँ एक अंतर है। हालांकि आप किस बारे में सोच रहे हैं? क्योंकि आपके मामले में कोई अंतर नहीं हो सकता है। इसके अलावा, यदि आप सीएलआई में अपनी स्क्रिप्ट निष्पादित कर सकते हैं तो मैं चाहता हूं कि HTTP अनुरोधों को Wget और Curl के रूप में चलाने के बजाय। – hakre

+2

मुख्य अंतर है, curl + wget विधियां (अनिवार्य रूप से वही) HTTP शीर्षलेखों को '$ _SERVER' में भर देगा। कमांड लाइन आविष्कार नहीं होगा। – Leigh

+2

अलावा @Leigh टिप्पणी, कर्ल + wget में अपाचे उपयोगकर्ता के साथ चलाता है और php CLI क्रॉन उपयोगकर्ता के साथ चलाता है। – m4t1t0

उत्तर

9

चल रहा है पीएचपी सीधे सबसे आसान विकल्प है। यह आपके अपाचे (या अन्य वेबसर्वर) उदाहरण पर नेटवर्क स्लॉट नहीं लेता है। यह वेबसर्वर से जुड़ी सीमाओं को भी छोड़ देता है जो दुर्भावनापूर्ण तृतीय पक्षों के खिलाफ आपकी मशीन को सुरक्षित रखने के लिए डिज़ाइन किए गए हैं। हालांकि, जिस वातावरण के तहत PHP रनों का कमांड लाइन संस्करण थोड़ा अलग है, और खराब हो सकता है ताकि खराब लिखित लिपि को ठीक तरह से व्यवहार करने से रोका जा सके। साथ ही, कुछ वेबसर्वर apache की प्रक्रिया स्थान के भीतर और अपाचे की उपयोगकर्ता अनुमतियों का उपयोग करते हुए एक डीएसओ मॉड्यूल के रूप में PHP चलाते हैं। यह आपके परिणामों को प्रभावित कर सकता है (शायद सकारात्मक या शायद नकारात्मक)।

शेष दो विकल्पों में से curlwget से थोड़ा अधिक व्यापक रूप से तैनात किया गया है, इसलिए यह मेरी दूसरी पसंद होगी, हालांकि वे लगभग बराबर हैं।