Виправлення системного годинника CentOS


12

Використання функції часу С (кількість секунд після епохи) показує, що час на моєму поточному сервері CentOS 6 відстає приблизно на 7 годин порівняно з іншим сервером з правильним часом. Як я можу виправити системний годинник? Я не думаю, що це дрейф, тому що я просто налаштував цей сервер кілька тижнів тому, але це могло бути. Я налаштовую ntpd, але це не допомагає, можливо, тому що різниця у часі занадто велика.


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

Справа в тому, переконайтеся, що часовий пояс збігається з полів, які ви порівнюєте

EDIT

якщо TZ відрізняється

/ etc / localtime

то не забудьте врахувати зміщення UTC, порівнюючи системний час

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.