एक समयक्षेत्र परिवर्तन के बाद क्रॉन जॉब फायर नहीं करता है


13

मैंने कई सामान्य त्रुटियों को दूर करने की कोशिश की है,

  1. यह सुनिश्चित करना कि पैट्रन क्रोन के लिए उपलब्ध हैं

  2. crontab फ़ाइल के अंत में एक एंडलाइन है

  3. टाइमजोन द्वारा स्थापित किया गया है:

    cd /etc
    cp /usr/share/zoneinfo/Asia/Singapore /etc/localtime
    

dateबैश में चल रहा है, मुझे मिलता है:

Tue Sep 17 15:14:30 SGT 2013

यह जांचने के लिए कि क्या क्रोन एक ही समय का उपयोग कर रहा है,

* * * * * date >> date.txt

तारीख में वही उत्पादन दे रहा है।

यह वह स्क्रिप्ट है जिसे मैं निष्पादित करने की कोशिश कर रहा हूं:

event.sh:

#!/usr/bin/env bash
echo data > /root/data.txt

का उपयोग करते हुए crontab -e, नीचे की रेखा काम करती है,

* * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1

15 * * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1

हालाँकि, जब मैंने कुछ अन्य तर्कों की कोशिश की, तो उम्मीद थी कि यह दोपहर 2.50 बजे चलेगी:

50 14 * * * /bin/bash /root/event.sh >/tmp/debug.log 2>&1

या

50 14 * * * (cd /root ; ./event.sh >/tmp/debug.log 2>&1)

यह अब काम नहीं करेगा। लगता है जैसे मेरे घंटे के तर्क में कोई समस्या है। /tmp/debug.logफ़ाइल में कुछ भी नहीं मिला ।

उपाय:

यह पता चला है कि मुझे टीबी में परिवर्तन करने के बाद क्रोन सेवा को फिर से शुरू करना होगा।


1
लॉग में कोई त्रुटि? क्या आप इसके ~/event.shसाथ प्रयास करने के बजाय पूर्ण पथ के साथ प्रयास कर सकते हैं/home/username/event.sh
राहुल पाटिल

1
छोटे संशोधन भी करें जैसे* * * * * /bin/bash /root/event.sh >/tmp/debuge.log 2>&1
राहुल पाटिल

1
आप कहते हैं कि समय क्षेत्र सही तरीके से सेट है, लेकिन क्या आप इसके बारे में पूरी तरह आश्वस्त हैं? किसी प्रविष्टि को जोड़ने का प्रयास करें * * * * * dateऔर पुष्टि करें कि dateअपेक्षित समय दिखाता है। ध्यान दें कि crontab के भीतर से TZ पर्यावरण चर सेट करना क्रोन डेमॉन द्वारा उपयोग किए गए समय क्षेत्र को प्रभावित नहीं कर सकता है, लेकिन यह क्रोन के माध्यम से लॉन्च होने वाली प्रक्रियाओं को प्रभावित करेगा, इसलिए यदि आप अपने crontab में TZ सेट करते हैं, तो मैं इसे अस्थायी रूप से टिप्पणी करने का सुझाव दूंगा। और सिस्टम घड़ी के टाइमज़ोन का उपयोग करके समय निर्धारित करना (शायद यूटीसी यदि आप सिंगल-बूटिंग लिनक्स हैं, लेकिन इसके बजाय स्थानीय समय हो सकता है)।
एक सीवी

1
आपको बिंदु याद आ रहा है, @adsisco। मैं पूछ रहा हूं कि आप किसी भी TZ निर्देश को हटा दें जो कि crontab में हो सकता है और फिर इसे फिर से आज़मा सकता है। यह उसी टीबी के साथ तारीख निष्पादित करेगा जैसा कि क्रोन डेमॉन स्वयं करता है, हमें यह देखने देता है कि समय क्षेत्र क्रोन समय क्षेत्र में क्या चाहता है? / Etc / स्थानीय समय केवल प्रदर्शन को प्रभावित करता है, सिस्टम घड़ी को नहीं, और मुझे संदेह है कि यह क्रोन को प्रभावित करता है। इस परीक्षण को करने से, हम यह सुनिश्चित कर सकते हैं कि आपकी समस्या किसी भी तरह से समय क्षेत्र से संबंधित नहीं है (जो स्पष्ट रूप से मेरे लिए ऐसा लगता है)।
बजे एक सीवीएन

1
वास्तव में, मुझे लगता है कि मैंने सिस्टम को रिबूट करके इसे ठीक किया है ... क्या यह हो सकता है कि मुझे टीएस में परिवर्तन करने के बाद क्रोन सेवा को फिर से शुरू करना पड़े? @ MichaelKjörling। धन्यवाद! संभावित समयक्षेत्र की समस्याओं की ओर इशारा करने के लिए।
adsisco

जवाबों:


7

सबसे पहले, आप एक बग मार रहे हैं जो एक क्षेत्र को गलत तरीके से माना जाता है जो असाधारण रूप से कम लगता है । यह क्या हो रहा है और क्या क्रोन की उम्मीद है की गलतफहमी होने की संभावना है।

इस मामले में, हमने इस सवाल पर टिप्पणी में पाया कि यह एक समयक्षेत्र से संबंधित मुद्दा था। इसके लिए, आप:

  • * * * * * dateCrontab की तरह एक प्रविष्टि जोड़ें
  • Crontab से किसी भी TZ असाइनमेंट को निकालें (या टिप्पणी करें)

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

यह भी ध्यान दें कि सिस्टम ग्लोबल टाइमज़ोन सेटिंग्स में बदलाव (जैसे / आदि / स्थानीय समय सहित) लगभग निश्चित रूप से क्रोन डेमॉन के कम से कम पुनरारंभ की आवश्यकता होती है, और संभवतः (हालांकि संभावना नहीं) पूर्ण प्रभाव लेने के लिए एक सिस्टम रिबूट। Crontab में TZ असाइनमेंट को संपादित करने के लिए क्रोन डेमॉन को फिर से लोड करने की आवश्यकता नहीं होनी चाहिए , क्योंकि यह पता लगाना चाहिए कि फ़ाइल को बदल दिया गया है और इसे स्वचालित रूप से फिर से लोड करना है।

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