2012-01-08 29 views
14

मैं एक लिनक्स सर्वर पर जेनकींस चला रहा हूँ और गलत समय से पता चलता :(जेनकिंस गलत समय दिखाते हैं?

स्थिति: मैं एक जावा अनुप्रयोग (बिल्ला कि भी जेनकींस चलाता में) है कि लॉग फाइल में सही समय पता चलता (मैं का उपयोग चला रहा हूँ । slf4j के माध्यम से Logback) bios UTC समय (सिस्टम घड़ी) पसंद करने के लिए सेट कर दिया जाता है यहाँ की सलाह है: http://www.linuxsa.org.au/tips/time.html

लिनक्स में यह/etc/sysconfig/घड़ी है कि सिस्टम घड़ी यूटीसी के लिए और जो समय क्षेत्र में सेट किया गया है में संकेत दिया है हम स्थित हैं। मैं यूटीसी + 1

लिनक्स पर चलने की तिथि कमांड सही स्थानीय समय दिखाता है। उदाहरण ई: सूर्य जनवरी 8 12:11:35 सीईटी 2012 लेकिन जेनकींस समय के साथ साथ 1 घंटे दिखाता है: (...

जेनकींस config पता चलता है: user.timezone = यूरोप/एम्सटर्डम (जो यूटीसी + 1)।

मुझे लगता है कि जेनकींस (जावा) सोचता है कि स्थानीय घड़ी यूटीसी पर सेट है जैसे कि 1 घंटा जोड़ा जाता है।

मैं इसे कैसे हल करूं?

+0

यह स्पष्ट रूप से प्रोग्रामिंग प्रश्न नहीं है। आपको serverfault.com –

+0

से परामर्श लेना चाहिए, लेकिन फिर जेनकींस में यह सही क्यों नहीं है, लेकिन मेरे अपने ऐप में है? (जावा ऐप दोनों)। मैंने पहले से ही सभी लिनक्स घड़ी सेटिंग्स की जांच की है – edbras

+0

आपके पास एक ऐप/व्यवस्थापक समस्या है जो प्रोग्रामिंग समस्या नहीं है। –

उत्तर

13

यहाँ देखें: https://wiki.jenkins-ci.org/display/JENKINS/Change+time+zone

संक्षेप में, आप सिस्टम गुण सेट कर सकते हैं, या तो JVM विकल्पों को संशोधित,

java -Dorg.apache.commons.jelly.tags.fmt.timeZone=TZ ... 

या/etc/default/जेनकींस में जेनकींस विन्यास बदलने (डेबियन) या/etc/sysconfig/जेनकींस (रेड हैट):

JAVA_ARGS="-Dorg.apache.commons.jelly.tags.fmt.timeZone=America/New_York" 

यह भी -Duser.timezone="..." उल्लेख एक विकल्प है, लेकिन समस्याओं का कारण/अन्य संदर्भों के साथ हस्तक्षेप (कर सकते हैं रों ओमे अस्पष्ट हाथ-waving & चेतावनी: समय यात्रा हमेशा अप्रत्याशित है)।

सामान्य (मेरे अनुभव में) में, सिस्टम समय में परिवर्तन नहीं करते, हमें के बाद से, हमारे सर्वर & हमारे डेटा एक वैश्विक दुनिया & से निपटने में किया जाना चाहिए, जीने यूटीसी में, भेजने के अधिकतम संभव समय तक हर समय की तुलना : आमतौर पर प्रदर्शित होने से पहले यह GUI (प्रेजेंटेशन लेयर) है (... यदि भी तब भी)। (हमारे निर्माण प्रणाली के परिणाम वास्तव में डेटा उत्पन्न करते हैं जो किसी अन्य समय क्षेत्र में किसी अन्य सिस्टम में खिलाया जाता है।)

+1

हमारे पास user.timezone सही टाइमज़ोन पर सेट है, लेकिन जेनकींस अभी भी यूटीसी का उपयोग कर रहा है। यह पता चला है कि मास्टर सही ढंग से सेट है, लेकिन दास नहीं हैं। गुलामों को सही टाइमज़ोन पर कैसे सेट किया जा सकता है? –

14

यदि आप डॉकर के साथ जेनकींस चला रहे हैं, तो आप डॉकर तर्कों के लिए -e JAVA_OPTS=-Duser.timezone=TZ जोड़ सकते हैं।

docker run -e JAVA_OPTS=-Duser.timezone=$TZ jenkins 

सभी उपलब्ध TZhere पाया जा सकता है।

0

उबंटू 14.04.5 LTS पर जेनकींस 2.63 पर

JAVA_ARGS="-Djava.awt.headless=true -Duser.timezone=America/Los_Angeles" 
/etc/default/jenkins में

और फिर कर

sudo service jenkins stop 
sudo service jenkins start 

काम किया मुझे पीडीटी को यूटीसी से समय क्षेत्र बदलने के लिए के लिए सेटिंग।

1

इसे डॉकरफ़ाइल में रखें और यह काम करेगा;

RUN echo "import hudson.model.*;" > 
/var/jenkins_home/init.groovy.d/timezone.groovy && \ 
echo "import jenkins.model.*;" >> 
/var/jenkins_home/init.groovy.d/timezone.groovy && \ 
echo "System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 
'America/Denver')" >> /var/jenkins_home/init.groovy.d/timezone.groovy 

$ JENKINS_HOME/init.groovy.d/*। ग्रूवी शुरू अप पर क्रियान्वित हो जाएगा।

System.setProperty('org.apache.commons.jelly.tags.fmt.timeZone', 
'America/Denver') 

जो टाइमज़ोन सेट करता है।

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