2012-01-06 14 views
40

क्या 3 एमएम को छोड़कर हर 15 मिनट (हर घंटे आदि ..) पर एक cronjob चलाना संभव है?क्रैंटैब 3AM को छोड़कर हर 15 मिनट में चलाता है?

मैं एक और विशेष cronjob मैं 3 पर चलाना चाहते हैं है, लेकिन मैं एक दूसरे को एक ही समय में चलाने के लिए नहीं चाहता ...

+7

सबसे आसान होगा crontab एक स्क्रिप्ट निष्पादित करने दें जो जांचता है कि यह 3AM है, और यदि ऐसा है, तो बस बाहर निकलता है। – Konerak

+0

आदर्श रूप से आपको किसी प्रकार की लॉक सिस्टम का उपयोग करना चाहिए। एक नौकरी के साथ साझा ध्वज सेट करें, और जांचें कि वह ध्वज दूसरी नौकरी के साथ सेट है या नहीं। – Mikhail

उत्तर

86
एक क्रॉन लाइन के साथ

, नहीं। तीन के साथ, हाँ:

# Every 15 minutes except for 3:00-3:59 
*/15 0-2,4-23 * * * thejob 
# 3:15, 3:30, 3:45 
15-45/15 3 * * * thejob 
# 3:00 dead 
0 3 * * * otherjob 
+1

यही वह है जो मैं सोच रहा था, धन्यवाद। मैं इसका इस्तेमाल करूंगा। –

+0

आज तक यह सबसे स्पष्ट उदाहरण है जो मैंने अभी तक पाया है। हालांकि समृद्ध प्रतिक्रिया को संशोधित करने के बाद दो लाइनों में यह संभव होगा, यह पढ़ने के लिए बहुत आसान है। साझा करने के लिए धन्यवाद! +1 – bwright

1
0,15,30,45 0,1,2,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 * * * your cron job 
+12

यह 3:15 बजे, 3:30 बजे, 3:45 बजे नहीं चलेगा, इसलिए आपको इन घंटों के लिए क्रोंटैब में एक और पंक्ति की आवश्यकता है। –

4

मैंने अपना स्वयं का समाधान बनाया, लेकिन मैं देखना चाहता था कि अन्य लोगों ने क्या सोचा!

मैंने इसे अपनी वांछित स्क्रिप्ट के शीर्ष पर रखा है। मैं चाहता था कि यह आधे घंटे में न चलें, इसलिए यह दोनों पर ऐसा नहीं करता है।

स्क्रिप्ट के शीर्ष पर:

if [ $(date +%M) = 00 ] || [ $(date +%M) = 30 ] 
then 
exit 
fi 

क्रॉन लाइन:

*/15 * * * * ~/path/to/file 

आशा किसी को भी मेरे समाधान का उपयोग करता।

संबंधित मुद्दे