Як встановити поточний час в Linux?


69

Чому вихід наступних команд відрізняється?

root@vmi2115:/var# hwclock
Sun 26 Jun 2011 01:21:38 PM CEST  -0.273230 seconds
root@vmi2495:/var# date
Sun Jun 26 15:21:39 CEST 2011
root@vmi2115:/var# 

І чи можу я змінити поточний час на Linux?


1
Швидкий пошук Google повертає це посилання:> cyberciti.biz/faq/howto-set-date-time-from-linux-command-prompt

Відповіді:


89

Зазвичай ви хочете, щоб час встановлювався автоматично, і в цьому випадку ви хочете налаштувати ntpdавтоматичне встановлення часу для вас.

Специфікація дещо відрізняється від розподілу до дистрибуції, але якщо ви, наприклад, використовуєте Ubuntu, є посібник із налаштування NTP в Ubuntu . В іншому випадку просто Google ntpd <distribution-name>, і ви, мабуть, знайдете його.

Якщо ви хочете встановити його вручну, ви можете використовувати date --set="<date string>". Прикладами цього можуть бути:

date --set="23 June 1988 10:00:00"
date --set="10:00:00"

37

Встановіть апаратний годинник на поточний системний час.

# hwclock --systohc

Встановіть системний час з апаратного годинника.

# hwclock --hctosys

23

просто ntpdate ntp.ubuntu.comі все буде добре.

Більше інформації щодо цього можна отримати в офіційній документації Ubuntu


18
будь ласка, детальніше розробимо свою відповідь та надайте пояснення QA та майбутнім читачам, що робить команда, яку ви згадали, і чому ви рекомендуєте такі дії. Примітка: QA запитав, як змінити час, а не як тримати його синхронізованим.
Лоренцо Фон Маттерхорн

1
@LorenzoVonMatterhorn ok
Gangsar Swapurba

Це ще не має пояснень. Що я повинен очікувати, що станеться, якщо я запускаю цю команду?
jerclarke


1
Чудово працював для встановлення точного часу.
Сабріна Гельбарт

13

Ще одна поширена, дуже дратівлива проблема - коли вибрано неправильний часовий пояс ...

Перевірте часовий пояс із виходом дати:

$ дата

Пн 23 серпня 18:47:04 UTC 2013

Щоб виправити тип часового поясу:

$ sudo tzselect

і виберіть правильний регіон з відповідними номерами.

Друге завдання - встановити правильний час:

$ sudo дата --set = "18:37:00"

Або просто знайдіть час з HW-годинника:

$ sudo hwclock --hctosys


3

У CentOSчасових поясах, розташованих у /usr/share/zoneinfo/, змінити дату системи на певний часовий пояс можна:

Спочатку зробіть резервну копію наявного файлу локального часу.

sudo mv /etc/localtime /etc/localtime.bak

Далі створіть посилання:

sudo ln -s /usr/share/zoneinfo/Europe/Lisbon  /etc/localtime

Перевірте нову системну дату, ввівши date.

Щоб налаштувати дату системи Linux вручну , можна ввести:

date -s "11 MAR 2006 11:11:11"

АБО

date --set="11 MAR 2015 11:11:11"

АБО

date +%Y%m%d -s "20150311"

Щоб встановити апаратний годинник на поточний системний час:

hwclock --systohc

АБО

hwclock -w

1

"hwclock" - дата апаратного забезпечення (машини), а "date" - дата програмного забезпечення (операційна система).

Для зміни апаратної дати ПК:

hwclock --set --date="2013-7-31 09:30"

Для зміни дати програмного забезпечення:

date --set "2013-7-31 09:30"

1

Спробуйте це:

date +%T -s "12:21:00"

або

date +%T%p -s "12:22:20AM"
date +%T%p -s "12:23:30PM"

0

dateповертає час, заданий як час з моменту запуску процесора плюс внутрішній апаратний годинник заданого часу, hwclockдає час, який має внутрішній годинник.

Час на базі процесорного процесу, як правило, дрейфує довгий час роботи машини, тому причина існування hwclock --hctosysкоманди. Також є однією з причин використання часу протоколу мережі, який використовується для міжнародної координації часу в Інтернеті.


0

використовуйте це, якщо у вас немає клієнта NTP

date -s $(wget -q -O - http://www.timeapi.org/eest/now | cut -d '+' -f 1 | tr -d : | tr -d - | tr -d T | cut -c 1-12)

eest в URL-адресі - ваш місцевий часовий пояс

Ви можете використовувати utc ... та ін


але цей для мене працює: askubuntu.com/a/683136
користувач956584,

0

чи можу я змінити поточний час на Linux?

Для мене мені потрібно було запустити цю команду спочатку:

sudo systemctl stop systemd-timesyncd

В іншому випадку systemd негайно скине час. Після припинення системної служби запуск dateпрацює як очікувалося:

$ sudo date -s 'january 1 1971'
Fri Jan  1 00:00:00 CET 1971
$ date
Fri Jan  1 00:00:00 CET 1971

Поки служба працювала, date -sкоманда, здавалося, спрацювала, але запуск dateхвилини знову дасть мені системний час.

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