एक स्वचालित स्क्रिप्ट के साथ Timezone सेट करना


20

मैं नए स्लाइसहोस्ट इंस्टॉलेशन की स्थापना को स्वचालित करने के लिए स्क्रिप्ट लिख रहा हूं। एक आदर्श दुनिया में, मैंने स्क्रिप्ट शुरू करने के बाद, यह बस चलेगा, जिसमें मेरा कोई ध्यान नहीं है। मैं सफल रहा हूं, एक अपवाद के साथ।

मैं टाइमज़ोन कैसे सेट करता हूं, एक स्थायी (रिबूट से बचे) और साने (मानक और दिन के उजाले की बचत के समय के लिए समायोजित करें, इसलिए कोई तारीख के लिए मजबूर नहीं) ... जिस तरह से मुझे इनपुट की आवश्यकता नहीं है?

वर्तमान में, मैं उपयोग कर रहा हूं

 dpkg-reconfigure tzdata

ऐसा लगता है कि इसमें किसी भी तरह से पैरामीटर को बाध्य नहीं किया गया है। यह उपयोगकर्ता इनपुट की मांग करता है।


संपादित करें: मैं टिप्पणी करने के बजाए यहां संपादन कर रहा हूं, क्योंकि टिप्पणियाँ कोड ब्लॉक करने की अनुमति नहीं देती हैं।

रुडॉग की टिप्पणी के आधार पर मैंने यहां वास्तविक कोड को समाप्त किया। मैंने यह भी देखा कि यह अपडेट / etc / timezone नहीं करता है। मुझे यकीन नहीं है कि कौन इसका उपयोग करता है, लेकिन अगर कोई ऐसा करता है, तो मैं इसे भी सेट कर रहा हूं।

TIMEZONE="America/Los_Angeles"      
echo $TIMEZONE > /etc/timezone                     
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime   # This sets the time

जवाबों:


18

आपको ऐसा करने में सक्षम होना चाहिए

cp /usr/share/zoneinfo/America/Los_Angeles /etc/localtime

उपर्युक्त कमांड में उचित समय क्षेत्र को प्रतिस्थापित करें।


1
आपको सहानुभूति रखनी चाहिए कि नकल न हो
Zypher

1
वह डेबियन का उपयोग कर रहा है। dpkg-reconfigure tzdataएक प्रतिलिपि बनाता है, एक सिम्लिंक नहीं। मेरा मानना ​​है कि औचित्य है क्योंकि / usr / शेयर बूट समय पर माउंट नहीं किया जा सकता है।
रुडयोग

डेबियन के लिए tzconfig मैनपेज के तकनीकी खंड के अनुसार: tzconfig द्वारा किया गया कार्य वास्तव में बहुत सरल है। यह सिर्फ लिंक / etc / localtime को / usr / share / zoneinfo / में स्थापित सही टाइमज़ोन को इंगित करने के लिए अपडेट करता है।
ब्रेंट

1
tzconfig dpkg-reconfigure tzdata के पक्ष में लेन पर पदावनत है और वास्तव में कुछ भी नहीं करेगा। आप सत्यापित कर सकते हैं कि यह dpkg-reconfigure tzdata को चलाकर सहानुभूति के बजाय कॉपी करता है और परिणाम को देखता है।
रुदोगोग

3

Ubuntu 12.04 पर निम्नलिखित ने मेरे लिए चाल चली:

# http://manpages.ubuntu.com/manpages/precise/man7/debconf.7.html
export DEBCONF_NONINTERACTIVE_SEEN=true DEBIAN_FRONTEND=noninteractive
echo "Europe/Berlin" > /etc/timezone
dpkg-reconfigure tzdata

1
यह विधि अब और काम नहीं करती है। बगसलाउंचपड.नेट
पीटर गिब्सन

Ubuntu 14.04 पर काम करता है।
SuB

3

इसे इस्तेमाल करे:

echo "Europe/London" > /etc/timezone
dpkg-reconfigure -f noninteractive tzdata

हालांकि कोड की सराहना की जाती है, लेकिन इसका हमेशा साथ होना चाहिए। यह लंबा होना जरूरी नहीं है, लेकिन यह अपेक्षित है।
पीटर - मोनिका

3
यह विधि अब और काम नहीं करती है। बग्सलांचपद.नेट
पीटर गिब्सन

2

/etc/localtimeसमय में सही करने के लिए इंगित करने के लिए सिमलिंक अपडेट करें/usr/share/zoneinfo/


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

1

इस में खुद भाग गया। यह कैसे करें (यह और इस सवाल में टिप्पणियों का एक समुच्चय है) यह कैसे करें, इसके लिए एक पूर्ण विन्यास है :

#Set time zone and time
echo "tzdata tzdata/Areas select Europe" | debconf-set-selections
echo "tzdata tzdata/Zones/Europe select London" | debconf-set-selections
TIMEZONE="Europe/London"
echo $TIMEZONE > /etc/timezone
cp /usr/share/zoneinfo/${TIMEZONE} /etc/localtime
/usr/sbin/ntpdate pool.ntp.org

0

tzdataउस प्रश्न का उत्तर देने के लिए डिबेंकफ़ का उपयोग करता है, इसलिए आपको इसे पूर्वनिर्मित करने की आवश्यकता है। ऐसा करने के कई तरीके हैं, इंस्टॉलेशन के दौरान सबसे आसान उत्तर उत्तर देना है । इससे परे कि आप डिबेंक का उपयोग करने के लिए एक डिफ़ॉल्ट डेटाबेस सेट कर सकते हैं, यह debconf(7)कैसे करें के लिए मैनपेज देखें ।


-2

यह भी सुनिश्चित करें कि ntpd स्थापित और चल रहा है।

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