क्रोन के साथ टाइमजोन मुद्दा


11

सर्वर टाइम की तुलना में मेरे क्रॉन जॉब्स की गणना एक घंटे बाद की जाती है। मुझे समझ नहीं आ रहा है कि क्या चल रहा है।

मेरा विन्यास निम्नलिखित है:

सर्वर समय :

Europe/Paris

/ Etc / default / cron में मैंने निम्नलिखित पंक्ति जोड़ी:

TZ="Europe/Paris"

इसके बावजूद, क्रोन जॉब को सर्वर समय से एक घंटे बाद लॉन्च किया जाता है। वास्तव में क्या मुश्किल है, यह है कि अगर मैं क्रोन को निर्देश "डेट" खेलने के लिए कहता हूं, तो यह सर्वर की तारीख (अच्छा!) देता है।

मुझे इस समस्या का समाधान करने का कोई विचार नहीं है; मैं मंचों पर कुछ पढ़ रहा हूं, लेकिन कुछ भी दिलचस्प नहीं मिला।

तुम क्या सोचते हो ?


4
इसलिए यूटीसी में क्रोन जॉब्स शेड्यूल किए जा रहे हैं। विक्सी क्रोन मैन पेज कहता है, "डेमॉन का उपयोग करेगा, यदि वर्तमान में, टाइमज़ोन से / etc / timezone से परिभाषा।" इसमें क्या है /etc/timezone? क्या आपने प्रक्रिया शुरू करने /etc/timezoneसे अधिक हाल ही में संशोधित किया है cron? क्या आपने कोशिश की है /etc/init.d/cron restart?
कीथ थॉम्पसन

3
/ etc / timezone को हाल ही में संशोधित किया गया है, बिना /etc/init.d/cron को पुनः आरंभ किए। मैं इसे पुनः आरंभ करने का प्रयास करने वाला हूं।
गुइलुमे लेबोर्जियो

जवाबों:


16

(मेरी टिप्पणी को उत्तर के रूप में कॉपी करना, क्योंकि यह समाधान निकला; मैंने सही अनुमान लगाया।)

यूटीसी में क्रोन जॉब्स शेड्यूल किए जा रहे हैं (यूटीसी Europe/Parisसे एक घंटे की ऑफसेट पर)।

विक्सी क्रोन मैन पेज कहता है:

डेमॉन का उपयोग करेगा, यदि मौजूद है, तो टाइमज़ोन के लिए / etc / timezone से परिभाषा।

इसमें क्या है /etc/timezone? क्या आपने /etc/timezoneक्रॉन प्रक्रिया शुरू करने की तुलना में हाल ही में संशोधित किया है ? आपने कोशिश की है

/etc/init.d/cron restart

?


3

फेडोरा जैसे कुछ डिस्ट्रोस एक तंत्र प्रदान करते हैं जहां आप CRON_TZ=अपने डिफ़ॉल्ट समयक्षेत्र को ओवरराइड करने के लिए सेट कर सकते हैं ।

फेडोरा से man 5 crontab

CRON_TZ चर क्रोन तालिका के लिए विशिष्ट समय क्षेत्र को निर्दिष्ट करता है। उपयोगकर्ता को तालिका में निर्दिष्ट समय क्षेत्र के अनुसार एक समय दर्ज करना चाहिए। लॉग फ़ाइल में लिखने के लिए उपयोग किया जाने वाला समय स्थानीय समय क्षेत्र से लिया जाता है, जहां डेमॉन चल रहा है।

कुछ इस तरह:

#m  h           d   m   wday    command
CRON_TZ="Europe/Paris"
5   0,6,12,18   *   *   *       /path/to/script.bash

1

विकिपीडिया कहता है

अधिकांश क्रोन कार्यान्वयन केवल सिस्टम टाइम ज़ोन सेटिंग में crontab प्रविष्टियों की व्याख्या करते हैं जिसके तहत क्रोन डेमॉन स्वयं चलाया जाता है। यह एक विवाद का एक स्रोत हो सकता है यदि एक बड़ी बहुउपयोगकर्ता मशीन में कई समय क्षेत्र में उपयोगकर्ता हैं, खासकर यदि सिस्टम डिफ़ॉल्ट टाइमज़ोन में संभावित रूप से भ्रमित डीएसटी शामिल है। इस प्रकार, एक क्रोन कार्यान्वयन विशेष रूप से किसी भी "TZ =" परिवेश चर को उपयोगकर्ता crontabs में स्थापित कर सकता है, उस टाइमज़ोन के सापेक्ष बाद के क्रॉटाब प्रविष्टियों की व्याख्या कर सकता है

तो शायद आपकी लॉगिन आईडी में एक टीबी सेटिंग है जो सिस्टम टीबी सेटिंग से अलग है?


1

क्रोन को फिर से शुरू करना, जिसकी मुझे आवश्यकता थी, लेकिन मेरे लिए कमान थी

/etc/init.d/crond restart (crond not cron)

0

बस इसे 14/16 उबंटू पर पता चला। मेरे लिए पूरी तरह से काम किया।

चरण (सुडौल निहित):

  1. cat /etc/timezone
  2. rm -fv /etc/localtime
  3. ln -s /usr/share/zoneinfo/Asia/Kolkata /etc/localtime
  4. apt install -y --reinstall tzdata
  5. /etc/init.d/rsyslog restart
  6. tail -f /var/log/syslog
  7. cat /etc/timezone

कहाँ cronसे पुनः आरंभ होता है?
DavidPostill

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