Jak zmienić strefę czasową w centos 6.2?

32

Oto wynik mojej datekomendy:

[root@r1304 ~]# date
Wed Apr 18 15:43:28 GST 2012

Chcę zmienić domyślną strefę czasową systemu na Azję / Dubaj. Wykonałem samouczek i zrobiłem to:

ln -sf /usr/share/zoneinfo/Asia/Dubai /etc/localtime

Ale bez efektu. Wygląda na to, że dzieje się to inaczej w CentOS 6. Jak zmienić strefę czasową?

Temnovit
źródło
To nie powinno być takie skomplikowane ...
ewwhite

Odpowiedzi:

41

Wygląda na to, że CentOS 6.2 nie ma w nim żadnej linii hwclock /etc/rc.sysinit, więc zmiana /etc/sysconfig/clocknie będzie działać.

spróbuj tzselectlub użyj ln -s /usr/share/zoneinfo/xxxx /etc/localtime

caojun
źródło
5
Dzięki, to mi działało. Moje rozwiązanie było rm /etc/localtime && ln -s /usr/share/zoneinfo/America/New_York /etc/localtime.
Banjer
Co lepiej wykorzystać do tego - lnlub cp?
XåpplI'-I0llwlg'I -
W takim przypadku użycie dowiązania symbolicznego jest prawdopodobnie lepsze niż kopiowanie pliku
JDS
2
Zrób to, ale pamiętaj również o zaktualizowaniu /etc/sysconfig/clockprawidłowej strefy czasowej, ponieważ aktualizacje mogą i zmienią czas lokalny z powrotem na zegar.
Justin,
ln -sjest lepsze niż cpdlatego, że jeśli pakiet tzdata zaktualizuje plik strefy dla twojego regionu, zobaczysz zmiany bez konieczności kopiowania go ponownie.
David Purdue,
9

Najpierw użyj tzselect, aby dowiedzieć się, jaka jest twoja strefa czasowa. Końcowe wyjście tzselect będzie wyglądało tak:

Here is that TZ value again, this time on standard output so that you
can use the /usr/bin/tzselect command in shell scripts:
America/New_York

Ostatni wiersz to nazwa pliku zoneinfo.

Teraz utwórz dowiązanie symboliczne z / etc / localtime do właściwego pliku zoneinfo, np .:

ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime 

Flaga -f jest potrzebna do zastąpienia istniejącego pliku / etc / localtime.

Uwaga: uruchomienie tzselect niczego nie dotknie w twoim systemie, po prostu wyśle ​​jakiś tekst. „Lub” w odpowiedzi caojun wprowadza w błąd. Musisz użyć tzselect AND ln. Z strony podręcznika tzselect: „[tzselect] wyświetla wynikowy opis strefy czasowej na standardowe wyjście”.

Luca Gibelli
źródło
4

Edytuj plik /etc/sysconfig/clockzgodnie z własnymi potrzebami.

pkhamre
źródło
1
To nie jest kompletne rozwiązanie. Musisz ustawić przesunięcie strefy czasowej.
ewwhite
5
chociaż nie jest to pełna odpowiedź, ten krok jest bardzo istotny. bez aktualizacji sysconfig / clock (coś, czego nie zrobiliśmy, zmieniając strefy czasowe) ... uruchomienie niektórych pysznych aktualizacji / instalacji (nie wiem, które), spowoduje, że strefa czasowa powróci do tej wymienionej w sysconfig / clock ... bez względu na to, co / etc / localtime został zastąpiony przez. więc tak ... pamiętaj o zaktualizowaniu sysconfig / clock, aby zmiana strefy czasowej pozostała.
anonimowy-jeden
1
Aktualizacja yum może spowodować katastrofę w przypadku, gdy / etc / localtime i / etc / sysconfig / clock wskazują na dwie różne strefy czasowe. Na przykład aktualizacja mysql może spowodować miłe przesunięcie czasowe we wszystkich datach.
elbuild
2

Po zmianie strefy czasowej należy ponownie uruchomić rsyslogd, aby nowa strefa czasowa została odzwierciedlona w dziennikach.

Zrób to za pomocą: service rsyslog restart

Ed Greenberg
źródło
1

Prosty samouczek, spróbuj tego ..

[root@dlp ~]# vi /etc/sysconfig/clock

# change to your location
ZONE="Asia/Tokyo"

[root@dlp ~]# source /etc/sysconfig/clock # reload
# copy your timezone file under the "/usr/share/zoneinfo" like follows
[root@dlp ~]# cp -p /usr/share/zoneinfo
rails_id
źródło
to działało dla mnie, inne opcje nie
Bokw
1
Jeśli te instrukcje w ogóle zadziałają, dobrze byłoby wyjaśnić, dlaczego ... Nie widzę powodu, dla którego pozyskiwanie /etc/sysconfig/clockmiałoby jakikolwiek wpływ na kolejny cpprogram (a nawet na każdy kolejny program)
off1,