Корректирующие системные часы CentOS

11

Использование функции time C (количество секунд с начала эпохи) показывает, что время на моем текущем сервере CentOS 6 отстает примерно на 7 часов по сравнению с другим сервером с правильным временем. Как я могу исправить системные часы? Я не думаю, что это дрейф, потому что я просто настроил этот сервер несколько недель назад, но это может быть. Я установил ntpd, но это не помогает, может быть, потому что разница во времени слишком большая.

user3180
источник
3
Проверьте вывод команды TZ=UTC date.
Майкл Хэмптон
1
вы правы, ntpd не исправит такую ​​разницу во времени. Чтобы ntpd действительно работал, ваша система должна находиться в паре минут от сервера времени.
fpmurphy
Сб 30 ноября 09:09:21 UTC 2013 - выход, который я только что получил
user3180
Да, это семь часов позади.
Майкл Хэмптон

Ответы:

23

Простой ответ - «установить дату вручную», что вам нужно сделать, но для предотвращения повторения этого есть еще кое-что, что вы должны сделать.

  1. Убедитесь, что конфигурация часового пояса системы находится в нормальном состоянии.

    Если для этого нет веской причины (например, из-за проблем с совместимостью программного обеспечения), часы сервера должны всегда работать по времени UTC.

    Если вы решили не использовать UTC, выберите часовой пояс, запустив tzselect. Часовой пояс будет напечатан на экране, который вы будете использовать ниже. Примером будет Europe/Moscow. В противном случае используйте UTCв качестве часового пояса ниже.

    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
    

    Установите системные часы на желаемый часовой пояс, выполнив следующие действия:

    1. Заменить содержимое /etc/sysconfig/clockследующим:

      ZONE="<timezone>"
      UTC=true
      

      Например:

      ZONE="Europe/Moscow"
      UTC=true
      

      Обратите внимание, что это UTC=trueдолжно быть установлено здесь, даже если вы не используете UTC в качестве часового пояса. Это относится к аппаратным часам сервера, которые всегда должны быть в формате UTC независимо от выбранного часового пояса системы.

    2. Замените /etc/localtimeфайл ссылкой на выбранный часовой пояс:

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

      Например:

      # ln -snf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
      # ln -snf /usr/share/zoneinfo/UTC /etc/localtime
      
  2. Установите часы вручную на текущее время.

    1. Синхронизировать системные часы с текущим временем:

      # ntpd -g -q
      
    2. Проверьте правильность времени:

      # date
      
    3. Синхронизируйте аппаратные часы сервера с системными часами:

      # hwclock -wu
      
  3. Перезагрузите компьютер. Перезапуск необходим, потому что все системные службы должны быть перезапущены, чтобы подобрать исправленные время и часовой пояс, а аппаратные часы сервера должны быть проверены (например, на предмет неисправной батареи).

    После перезапуска убедитесь, что система показывает правильное время и что ntpd работает правильно.

Майкл Хэмптон
источник
Большое спасибо, Майкл. Как я могу убедиться, что это правильно во время настройки? Я помню, как выбрал правильный часовой пояс, но время оказалось неправильным.
user3180
В графическом установщике есть флажок «Системные часы используют UTC». Всегда оставляйте этот флажок независимо от того, какой часовой пояс вы выбрали.
Майкл Хэмптон
0

Дело в том, чтобы убедиться, что часовой пояс совпадает с блоками, которые вы сравниваете

РЕДАКТИРОВАТЬ

если ТЗ отличается

/ И т.д. / LocalTime

затем не забудьте учесть смещение UTC при сравнении системного времени

nandoP
источник