2012-03-30 14 views
6

मैं शेड्यूल के आधार पर एक PHP फ़ाइल में कॉल को ट्रिगर करने वाला हूं। मैं स्क्रिप्ट को प्रत्येक 23:59:59 या कल दिन बंद होने से एक मिनट पहले निष्पादित करने की सोच रहा हूं। इसके लिए कोई सबसे अच्छा तरीका? क्रॉन सेटिंग्स पर अभी भी काफी उलझन में है।कल से पहले क्रॉन जॉब मिनट

मुझे यह सुनिश्चित करने की ज़रूरत है कि मैं अगले दिन ठीक पहले एक सेकंड में दौड़ूं।

+0

मैं पूरी तरह से सहानुभूति के लिए

man crontab 

को चलाने के लिए प्रयास करें, क्रॉन सेटिंग्स काफी भ्रमित हो सकता है। मैं एक सेकंड में एक उत्तर पोस्ट करूंगा :-) –

उत्तर

7

23:59:00 पर एक स्क्रिप्ट हर दिन निष्पादित करने के लिए, का उपयोग करें:

59 23 * * * root /path_to_file_from_root 

सेकंड क्रॉन का उपयोग कर परिभाषित नहीं किया जा सकता है, लेकिन यह आपके लिए क्या करना चाहिए।

स्क्रिप्ट को 23:59:59 पर निष्पादित करने के लिए, PHP sleep() फ़ंक्शन का उपयोग 59 सेकंड तक स्क्रिप्ट के निष्पादन में देरी करने के लिए करें। मैं 58 सेकंड की सलाह दूंगा, हालांकि यह सुनिश्चित करने के लिए कि मध्यरात्रि के बाद तक स्क्रिप्ट में देरी नहीं होती है।

यह बहुत ही बुनियादी है, आप इसे थोड़ा और जटिल बना सकते हैं ताकि यह सुनिश्चित किया जा सके कि स्क्रिप्ट हमेशा 23:59:59 बजे चलती है और उचित रूप से देरी कर रही है। हालांकि यह आवश्यक नहीं होना चाहिए।

<?php 

    // Any work that the script can do without altering the database, do here 

    // Delay the script by 58 seconds 
    sleep(58); 

    // Carry on with the rest of the script here, database updates etc 

?> 
+0

क्या इसका मतलब यह है कि क्रॉन 23:59:59 पर ठीक से चलेंगे, लेकिन यह केवल 23:59 पर दृश्यमान है? –

+0

@ डिफेंसर नहीं, मैं अपने जवाब में स्पष्ट नहीं था। यह हर दिन 23:59 बजे चलाएगा। आप crontab –

+0

@Defensor का उपयोग करके सेकंड निर्दिष्ट नहीं कर सकते हैं आपको इसे ठीक से चलाने के लिए क्यों आवश्यकता है? –

13
Minutes [0-59] 
| Hours [0-23] 
| | Days [1-31] 
| | | Months [1-12] 
| | | | Days of the Week [Numeric, 0-6] 
| | | | | 
* * * * * home/path/to/command/the_command.sh 




59 23 * * * home/path/to/command/the_command.sh 
+2

यह वास्तव में एक अच्छा विज़ुअलाइजेशन – sshow

+0

शानदार उत्तर +1 है! –

+0

59 सेकंड के बारे में कैसे? –

0

आप वास्तव में 23:59:00 हर रोज पर चलने के लिए सेट कर सकते हैं उदाहरण पर एक नज़र डालें here डाल दिया। विशेष रूप से उदाहरण संख्या देखें। 1, जो बताता है कि हर रोज एक विशिष्ट समय के लिए cronjob कैसे सेट करें।

1

प्रारंभ crontab संपादन

vi /etc/cronatb 

द्वारा

crontab -e 

या द्वारा यह distro पर निर्भर करता है।

59 23 * * * root /path/to/your/php/file.php 

ध्यान दें कि "रूट" कॉलम का मतलब उपयोगकर्ता का नाम है जिसके तहत नौकरी शुरू करना है, शायद आपके सिस्टम पर उपलब्ध नहीं होगा।

अधिक जानकारी के

+0

+1 अच्छी तरह से समझाया गया –