मैं डेबियन में समय क्षेत्र को स्थायी रूप से कैसे रीसेट करूं?


29

ड्रीमहॉस्ट को लगता है कि हम मिडवेस्ट में होने के बावजूद पीडीटी को पसंद करते हैं। मैं समयक्षेत्र कैसे बदलूं?

जवाबों:


73

एक उपकरण जो मुझे उपयोग करने में आसान लगा, वह है dpkg-reconfigure। उपयोग:

sudo dpkg-reconfigure tzdata

आपको विकल्पों में से एक भीड़ दी जाएगी, जिसमें कुछ ऐसे भी शामिल हैं जो इसमें शामिल नहीं हैं tzselect


इसे इस तरह से करने का एक लाभ यह है कि आप इसे एक पुन: प्रयोज्य तरीके से कर रहे हैं और कुछ गलत करने की संभावना को सीमित करते हैं जैसे कि टाइमज़ोन में डालने के लिए कुछ मौजूद नहीं है।
मोगेट

1
यह अच्छा सामान है, लेकिन यदि आपको गैर-इंटरैक्टिव (और इसलिए स्क्रिप्ट योग्य) विकल्प की आवश्यकता है, तो नीचे मेरा उत्तर देखें।
mc0e

14

यह संभवतः ओपी के लिए थोड़ा देर से है, और यहां पहुंचने वाले अन्य खोजकर्ताओं के लिए और अधिक इरादा है।

यदि आपको एक गैर-संवादात्मक समाधान की आवश्यकता है, तो इस समाधान को dpkg-reconfigure tzdata और debconf-set-selections के साथ बदलते समय से देखें

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

आप / usr / share / zoneinfo में इधर-उधर ताक-झांक करके अपने समयक्षेत्र का पता लगा सकते हैं। वास्तव में ऊपर dpkg-reconfigure कमांड उपयुक् त फाइल को वहां से / etc / localtime पर कॉपी करता है। मैं बस मैन्युअल रूप से ऐसा करता था, और यह ठीक काम करता है।

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


3
काम करने के लिए सावधान रहें, यह एक ऐसी आवश्यकता है जो /etc/localtimeपहले से मौजूद नहीं है। यदि यह मौजूद है और इसके लिए एक सॉफ्टलिंक है /usr/share/zoneinfo/whatever, तो इसे आधार के रूप में लिया जाता है और यह है /etc/localtimeकि आपके परिवर्तनों को लिखते हुए, तदनुसार अपडेट किया जाता है।
मल्टीसंकल

11

इसे हाल ही में डेबियन और उबंटू संस्करणों (स्ट्रेच / एक्सनियल आदि) पर गैर-संवादात्मक रूप से संपादित करने के लिए, आपको इसे भी हटाने की आवश्यकता है /etc/localtime, अन्यथा /etc/timezoneओवरराइट किया जाएगा।

echo 'Europe/Zurich' > /etc/timezone 
rm /etc/localtime
dpkg-reconfigure -f noninteractive tzdata

यह उत्तर mc0e के उत्तर पर आधारित है। मैं अपनी प्रतिष्ठा के साथ एक टिप्पणी नहीं जोड़ सकता।


3

टी एल; डॉ

echo "TZ=Etc/UTC" >> /etc/environment
tzconfig

जहाँ Etc/UTCआप अपने पसंदीदा समयक्षेत्र का उपयोग कर रहे हैं tzselect

लंबा संस्करण

जब आप उपयोग कर रहे हैं

dpkg-reconfigure tzdata

रिबूट के बाद टाइमजोन की जानकारी नहीं रखी जाती है। आप अपनी सेटिंग्स को सत्यापित कर सकते हैं

diff -s /etc/localtime /usr/share/zoneinfo/`cat /etc/timezone`

यदि आप केवल अपडेट कर रहे हैं /etc/timezone, तो अपडेट इसके अनुरूप नहीं होगा /etc/localtime, इसलिए इसे निष्पादित करना बेहतर है

tzconfig

tzselectयह जानने के लिए प्रयोग करें कि वास्तव में कौन से समय क्षेत्र मौजूद हैं (या बस /usr/share/zoneinfoनिर्देशिका ब्राउज़ करें )।

POSIX सिस्टम में TZइससे पहले पूर्वता लेना चाहिए /etc/localtime:

export TZ='Europe/Berlin'
$ date
Tue Apr 10 08:51:03 CEST 2018
export TZ='Pacific/Efate'
$ date
Tue Apr 10 18:28:33 +11 2018

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


क्या आप TZअपनी प्रोफाइल फाइल में पॉजिटिव एक्सपोर्ट कर रहे हैं ? यह मेरे अनुभव में बिल्कुल भी सही नहीं है। शायद आपका मतलब था "सिम्कलिंक बनाने के लिए भी सुनिश्चित करें ..."?
एमएन

1
@amn नहीं, यह एक सिमलिंक नहीं बनाएगा, मैंने स्पष्ट करने की कोशिश की है। लेकिन $TZचर glibcकार्यों द्वारा पढ़ा जाता है: gnu.org/software/libc/manual/html_node/TZ-Variable.html
टॉमबार्ट

क्या यह नहीं होना चाहिए echo "TZ=Etc/UTC" >> /etc/environment? आप TZ=हिस्सा याद कर रहे हैं ... (यदि कोई व्यक्ति अभी भी प्राचीन डेबियन संस्करण चला रहा है)। इसके अलावा, /etc/localtimeTZ
डेमोंस की तरह नॉनटेन्एक्टिव

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