लिनक्स स्क्रिप्ट को पहले दिन 'एन', अगले दिन 'एन + 15 मिनट' और इसी तरह चलाएं


5

मैं अपने वेब कैमरा का उपयोग करके समयबद्ध चित्र लेने की कोशिश कर रहा हूं। 1 जनवरी की मध्यरात्रि में मुझे क्या करना है, एक स्क्रिप्ट चलाएं, फिर 00:15 को 2 जनवरी, 00:30, 3 जनवरी और इसी तरह से चलाएं। यह हमेशा के लिए चालू रह सकता है, जब मैं करूंगा तो इसे बंद कर दूंगा।

मैं क्रोन के साथ ऐसा नहीं कर सकता, क्या मैं, हर संभव संयोजन के साथ क्रॉस्टब को भरने के बिना कर सकता हूं? मैं नहीं जानता कि हालांकि और क्या करना है।


यह एक दिलचस्प समय व्यतीत हो जाएगा। क्या आप एक लिंक पोस्ट कर सकते हैं जब यह किया जाता है?
marcusw

अगर मैं इसे काम करता हूं, और मुझे याद है तो हाँ।
Piku

जवाबों:


7

अपनी स्क्रिप्ट में एक नई क्रॉन नौकरी बनाने के बजाय, और हर बार "पुरानी" क्रॉन जॉब को हटाने के लिए, आपको इसका उपयोग करना चाहिए at इसके बजाय आदेश दें। at कमांड ठीक उसी के लिए बनाई गई थी, ताकि किसी कमांड को किसी विशिष्ट तिथि / समय पर एक बार चलाया जा सके। इस तरह, आपको पुरानी क्रॉन जॉब को हटाना नहीं पड़ेगा।

तो, आपके पास अपनी स्क्रिप्ट हो सकती है, इसे "कैप्चर_फ्रॉम_बैमकैम.श" कह सकते हैं, जैसे कि:

#!/bin/bash

#schedule next capture for tomorrow + 15 minutes
echo "/path/to/capture_from_webcam.sh" | at tomorrow + 15 minutes

# capture from webcam
/path/to/capture_from_webcam.sh

और अगर 1 जनवरी को आधी रात को, पहली बार के लिए निष्पादित किया जाता है:

echo "/path/to/capture_from_webcam.sh" | at 00:00 01/01/2010

अधिक जानकारी के लिए, देखें मैन पेज पर


यह एक अच्छा है :-) अगर सर्वर को रिबूट किया जाता है तो क्या होता है?
ℝaphink

1
@ नौकरियों में क्रैंक डेमन द्वारा नियंत्रित किया जाता है। वे अंदर / var / spool / cron / atjobs में स्टोर हैं। इसलिए, अगर रिबूट पर उस निर्देशिका को कुछ भी शुद्ध नहीं किया जाता है, तो भी उन्हें निष्पादित किया जाएगा।
Laurent Parenteau

3

आप उस स्क्रिप्ट के भाग के रूप में एक क्रॉन जॉब बना सकते हैं जिसे आप चलाने की योजना बना रहे हैं। तो क्या क्रोन की नौकरी एक बार चल पड़ी है, तो बैश स्क्रिप्ट अगले 15 मिनट बाद और इसी तरह बनाई जाती है।

यहाँ एक पिछला प्रश्न है जो मदद कर सकता है: बैश का उपयोग करके क्रोन जॉब कैसे बनाएं


चालाक, मुझे वह पसंद है :)
Piku

बस यह सुनिश्चित करने के लिए सावधान रहें कि स्क्रिप्ट उस नौकरी को हटा देती है जो अभी चली है, या आप सैकड़ों क्रॉन नौकरियों के साथ समाप्त करेंगे जो अगले साल फिर से चलेंगे ...
marcusw

1

आप क्रोन के माध्यम से ऐसा कर सकते हैं।

आप हर दिन एक ही समय पर एक ही क्रोन स्क्रिप्ट को कॉल करते हैं, लेकिन आप स्क्रिप्ट की शुरुआत के लिए एक नींद स्टेटमेंट जोड़ते हैं जो 15 * * पर सोता है date +'%j', वर्ष का यह दिन, [001 ... 366]।


एक अतिप्रवाह को रोकने के लिए हम्म को 96 के लिए मापांक जोड़ने की आवश्यकता है।
Darren Hall
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.