Debian'da saat dilimini kalıcı olarak nasıl sıfırlarım?


29

Dreamhost, Orta Batı'da olmasına rağmen PDT'yi sevdiğimizi düşünüyor gibi görünüyor. Saat dilimini nasıl değiştiririm?

Yanıtlar:


73

Kullanımı daha kolay bulduğum bir araç dpkg-reconfigure. kullanın:

sudo dpkg-reconfigure tzdata

Size dahil olmayanlar da dahil olmak üzere birçok seçenek verilecek tzselect.


Bu şekilde yapmanın bir yararı, tekrarlanabilir bir şekilde yapıyor olmanız ve var olmayan bir saat dilimi koymak gibi yanlış bir şey yapma şansınızı sınırlandırmanızdır.
Mogget

1
Bu iyi bir şey, ancak etkileşimli olmayan (ve dolayısıyla komut dosyası oluşturulabilir) bir seçeneğe ihtiyacınız varsa, aşağıdaki cevabımı inceleyin.
mc0e

14

Bu muhtemelen OP için biraz gecikmeli ve buraya gelen diğer araştırmacılar için daha fazla amaçlanmış.

Etkileşimli olmayan bir çözüme ihtiyacınız varsa , dpkg-reconfigure tzdata ve debconf-set-seçimleriyle saat dilimini değiştirmekten bu çözümü deneyin

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

Saat diliminizi / usr / share / zoneinfo içinde dolaşarak anlayabilirsiniz. Aslında yukarıdaki dpkg-reconfigure komutu uygun dosyayı oradan / etc / localtime dosyasına kopyalar. Bunu sadece el ile yapardım ve iyi çalışıyor gibi görünüyor.

Eğer uzun süren işlemler değişime uğramazsa, çok şaşırmayın. Örneğin, Apache log zaman damgaları akla geliyor. Bunun önemli olup olmadığını ve dolayısıyla çalışan işlemleri yeniden başlatmanız veya yeniden başlatmanız gerekip gerekmediğini göz önünde bulundurun.


3
Bunun çalışması için, /etc/localtimezaten mevcut olmayan bir gereksinim olduğuna dikkat edin . Eğer varsa ve bir softlink ise /usr/share/zoneinfo/whatever, üs olarak kabul edilir ve /etc/localtimedeğişikliklerin üzerine yazılarak buna göre güncellenir.
Multisync

11

En son Debian ve Ubuntu sürümlerinde (Stretch / Xenial vb.) Etkileşimli olmayan bir şekilde düzenlemek için, kaldırmanız gerekir /etc/localtime, aksi takdirde /etc/timezoneüzerine yazılır.

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

Bu cevap mc0e'nin cevabına dayanıyor. Şöhretimle yorum ekleyemiyorum.


3

TL; DR

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

nerede Etc/UTCTercih saat dilimidir kullanmakta buldu tzselect.

Daha uzun versiyon

Kullanırken

dpkg-reconfigure tzdata

saat dilimi bilgileri yeniden başlatıldıktan sonra saklanmaz. İle ayarlarınızı doğrulayabilirsiniz.

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

Yalnızca güncelleme yapıyorsanız /etc/timezone, güncelleme ile tutarlı olmaz /etc/localtime, bu nedenle yürütülmesi daha iyi olur

tzconfig

tzselectHangi zaman dilimlerinin gerçekte var olduğunu bulmak için kullanın (veya sadece /usr/share/zoneinfodizine göz atın ).

POSIX sistemlerinde daha TZönce öncelik olması gerekir /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

Doğrudan kullanma TZ , birçok sistem çağrısını sık kullanılan tarih / saatle ilgili işlevlerin, bazı programların geçerli tarih için her soruşunda dosya sistemine erişmesi gerektiğinden kurtarabilir . Bu bir mikro-optimizasyon, ama oldukça basit.


TZProfil dosyanızda dışa aktarma pozitif bir bağlantı oluşturur mu? Bu benim deneyimimde hiç doğru gelmiyor. Belki de "Ayrıca sembolik bağlantıyı oluşturduğunuzdan emin olun" dedin.
amn

1
@ Hayır, bu bir bağlantı oluşturmayacak, bunu netleştirmeye çalıştım. Fakat $TZdeğişken glibcfonksiyonlar tarafından okunur : gnu.org/software/libc/manual/html_node/TZ-Variable.html
Tombart

olmamalı mıydı echo "TZ=Etc/UTC" >> /etc/environment? TZ=parçayı kaçırıyorsun ... (eğer biri hala eski debian versiyonlarını kullanıyorsa). Ayrıca, daemon gibi etkileşimli olmayan şeyler hala /etc/localtimebir set yerine versiyonunu kullanır TZ...
Matija Nalis

@MatijaNalis Evet, haklısın. Düzeltme için teşekkürler!
Tombart
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.