2012-12-21 3 views
15

मैं 00:00 बजे दिन में दो बार एक स्क्रिप्ट निष्पादित करने के लिए चाहते हैं और 13:30 तो मैं लिखना:00h पर दिन में दो बार crontab निष्पादित और 13:30

0,30 0,13 * * * 

यह मेरे लिए गलत लगता है, इस वजह से की तरह है, स्क्रिप्ट 00:00, 00:30, 13:00 और 13:30 को आग लग जाएगी। कोई उपाय ?

उत्तर

17

दो क्रॉन प्रविष्टियों में क्यों नहीं रखा गया? 00:00 के लिए एक और 13:30 के लिए एक? मुझे नहीं लगता कि आप एक प्रविष्टि में जो भी चाहते हैं वह कर सकते हैं, क्योंकि दो मिनट की परिभाषा दोनों घंटे की परिभाषाओं के अनुसार लागू होगी (जैसा आपने पहचाना है)।

वैकल्पिक रूप से 00:00 पर एक स्क्रिप्ट निष्पादित करने का विकल्प है। वह स्क्रिप्ट आपकी मूल स्क्रिप्ट निष्पादित करेगी, फिर 13.5 घंटे प्रतीक्षा करें और फिर उस स्क्रिप्ट को फिर से निष्पादित करें। एक साधारण नींद कमांड के माध्यम से करना आसान होगा, लेकिन मुझे लगता है कि यह अनजान है, और मुझे यकीन नहीं है कि cron ऐसी लंबी चल रही प्रक्रियाओं का प्रबंधन कैसे करता है (यदि आप crontab संपादित करते हैं तो क्या होता है - क्या यह एक जन्मजात नौकरी आदि को मारता है।)

+0

मैं पहली बार में आप की तरह सोचा, लेकिन मैं ने कहा कि यह दो क्रॉन प्रविष्टियों को लिखने के लिए बेवकूफ है –

+3

यह बेवकूफ हो सकता है, लेकिन यह एक हो सकता है) रखरखाव बी) अपरिहार्य –

+6

@ वासिम: क्रोन अच्छा दोहराव अंतराल के लिए है, दिन के दौरान मनमाने ढंग से नहीं। दो क्रॉन प्रविष्टियों का उपयोग करें और आगे बढ़ें। –

36

इस- का प्रयास करें: 00 01,13 * * *

यह रात 1 बजे और 1 PM पर

+1

जो ओपी चाहता है वह नहीं है, निश्चित रूप से - '00h और 13:30 पर प्रतिदिन दो बार crontab निष्पादित करें'। यह मिनट और घंटों में अंतर है जो समस्या –

+0

का कारण बनता है, मुझे लगता है कि यह वास्तव में एक अच्छा कामकाज है। <60 मिनट तक निर्दिष्ट समय बदलना बहुत सारे क्रोन उपयोग मामलों के लिए सहनशील है, आईएमओ –

1

कोशिश चलेंगे ...

00 01,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time" 
+0

बहुत जटिल है, पिछला उत्तर सरल है –

+0

धन्यवाद @MahdiElMasaoudi – Ankush

0

30 0,13 * * * somecommand.sh

यह सिर्फ एक उदाहरण है, लेकिन आप देखेंगे कि यह एक क्रॉन प्रविष्टि है जो 0:30 पूर्वाह्न और फिर 1:30 अपराह्न (13 सैन्य समय में 1 है) पर चलती है। बस अल्पविराम घंटों को अलग करता है, या कॉमा क्रॉन के जो भी हिस्से को अलग करता है।

+0

प्लस वन "सैन्य समय" के लिए, उस नाम को 24 घंटे प्रारूप के लिए नहीं पता था। – PeterM

+2

ओपी कहता है, "मैं प्रतिदिन दो बार 00:00 और 13:30 पर एक स्क्रिप्ट निष्पादित करना चाहता हूं"। यह उत्तर 00:00 को संतुष्ट नहीं करता है। –

4

आप एक पंक्ति पर क्रॉन के साथ ऐसा नहीं कर सकते हैं।

# Will run "YourCommand" at 00:00 
0 0 * * * YourCommand 
# Will run "YourCommand" at 13:30 
30 13 * * * YourCommand 

या एक पंक्ति के रूप में आप हर एक्स घंटे एक आदेश चला सकते हैं, तो जैसे: तुम इतनी तरह 2 अलग लाइनों बनाने के लिए

# Will run "YourCommand" every 12 hours 
0 */12 * * * YourCommand 
संबंधित मुद्दे