Чому вихід наступних команд відрізняється?
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?
Чому вихід наступних команд відрізняється?
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?
Відповіді:
Зазвичай ви хочете, щоб час встановлювався автоматично, і в цьому випадку ви хочете налаштувати 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"
Встановіть апаратний годинник на поточний системний час.
# hwclock --systohc
Встановіть системний час з апаратного годинника.
# hwclock --hctosys
просто ntpdate ntp.ubuntu.com
і все буде добре.
Більше інформації щодо цього можна отримати в офіційній документації Ubuntu
Ще одна поширена, дуже дратівлива проблема - коли вибрано неправильний часовий пояс ...
Перевірте часовий пояс із виходом дати:
$ дата
Пн 23 серпня 18:47:04 UTC 2013
Щоб виправити тип часового поясу:
$ sudo tzselect
і виберіть правильний регіон з відповідними номерами.
Друге завдання - встановити правильний час:
$ sudo дата --set = "18:37:00"
Або просто знайдіть час з HW-годинника:
$ sudo hwclock --hctosys
У 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
"hwclock" - дата апаратного забезпечення (машини), а "date" - дата програмного забезпечення (операційна система).
Для зміни апаратної дати ПК:
hwclock --set --date="2013-7-31 09:30"
Для зміни дати програмного забезпечення:
date --set "2013-7-31 09:30"
date
повертає час, заданий як час з моменту запуску процесора плюс внутрішній апаратний годинник заданого часу, hwclock
дає час, який має внутрішній годинник.
Час на базі процесорного процесу, як правило, дрейфує довгий час роботи машини, тому причина існування hwclock --hctosys
команди. Також є однією з причин використання часу протоколу мережі, який використовується для міжнародної координації часу в Інтернеті.
використовуйте це, якщо у вас немає клієнта 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 ... та ін
чи можу я змінити поточний час на 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
хвилини знову дасть мені системний час.