Korekta zegara systemowego CentOS

12

Korzystanie z funkcji czasu C (liczba sekund od Epoki) pokazuje, że czas na moim obecnym serwerze CentOS 6 jest o około 7 godzin opóźniony w porównaniu z innym serwerem z właściwym czasem. Jak mogę poprawić zegar systemowy? Nie sądzę, że to dryfuje, ponieważ właśnie skonfigurowałem ten serwer kilka tygodni temu, ale może być. Instaluję ntpd, ale to nie pomaga, może dlatego, że różnica czasu jest zbyt duża.

użytkownik3180
źródło
3
Sprawdź dane wyjściowe polecenia TZ=UTC date.
Michael Hampton
1
masz rację, ntpd nie poprawi takiej różnicy czasu. Aby ntpd rzeczywiście działało, twój system musi znajdować się w odległości kilku minut od serwera czasu.
fpmurphy
Sobota 30 listopada 09:09:21 UTC 2013 to właśnie otrzymałem wynik
3180
Tak, to o siedem godzin do tyłu.
Michael Hampton

Odpowiedzi:

23

Prosta odpowiedź brzmi: „ustaw datę ręcznie”, co musisz zrobić, ale aby zapobiec ponownemu wystąpieniu, musisz zrobić więcej.

  1. Upewnij się, że konfiguracja systemowej strefy czasowej jest w rozsądnym stanie.

    O ile nie ma bardzo silnego powodu, aby tego nie robić (np. Problemy ze zgodnością oprogramowania), zegary serwera powinny zawsze działać w czasie UTC.

    Jeśli zdecydujesz się nie używać UTC, wybierz strefę czasową, uruchamiając tzselect. Strefa czasowa zostanie wydrukowana na ekranie, którego będziesz używać poniżej. Przykładem może być Europe/Moscow. W przeciwnym razie użyj UTCjako strefy czasowej poniżej.

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

    Ustaw zegar systemowy na żądaną strefę czasową, wykonując następujące czynności:

    1. Zamień zawartość /etc/sysconfig/clockna:

      ZONE="<timezone>"
      UTC=true
      

      Na przykład:

      ZONE="Europe/Moscow"
      UTC=true
      

      Pamiętaj, że UTC=truenależy ustawić tutaj, nawet jeśli nie używasz UTC jako strefy czasowej. Odnosi się to do zegara sprzętowego serwera, którym zawsze powinien być UTC, niezależnie od wybranej strefy czasowej systemu.

    2. Zastąp /etc/localtimeplik linkiem do wybranej strefy czasowej:

      # ln -snf /usr/share/zoneinfo/<timezone> /etc/localtime
      

      Na przykład:

      # ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
      # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
      
  2. Ustaw zegar ręcznie na bieżącą godzinę.

    1. Zsynchronizuj zegar systemowy z bieżącym czasem:

      # ntpd -g -q
      
    2. Sprawdź, czy czas jest poprawny:

      # date
      
    3. Zsynchronizuj zegar sprzętowy serwera z zegarem systemowym:

      # hwclock -wu
      
  3. Zrestartuj komputer. Ponowne uruchomienie jest konieczne, ponieważ wszystkie usługi systemowe muszą zostać ponownie uruchomione, aby wybrać poprawiony czas i strefę czasową, a zegar sprzętowy serwera musi zostać przetestowany (np. Pod kątem wadliwej baterii).

    Po ponownym uruchomieniu sprawdź, czy system pokazuje prawidłową godzinę i czy ntpd działa poprawnie.

Michael Hampton
źródło
Dziękuję bardzo Michael. Jak upewnić się, że jest poprawny podczas instalacji? Pamiętam, że wybrałem właściwą strefę czasową, ale czas wciąż się myli.
user3180,
W graficznym instalatorze znajduje się pole wyboru informujące: „Zegar systemowy używa UTC”. Zawsze pozostawiaj to zaznaczone, niezależnie od wybranej strefy czasowej.
Michael Hampton
0

Chodzi o to, aby strefa czasowa była taka sama, jak w porównywanych polach

EDYTOWAĆ

jeśli TZ jest inny

/ etc / czas lokalny

pamiętajcie, aby wziąć pod uwagę przesunięcie UTC przy porównywaniu czasu systemowego

nandoP
źródło