Почему вывод следующих команд отличается?
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.
Другая распространенная, очень раздражающая проблема - когда выбран неправильный часовой пояс ...
Проверьте часовой пояс с выходной датой:
$ date
Пт Авг 23 18:47:04 UTC 2013
Чтобы исправить тип часового пояса:
$ sudo tzselect
и выберите правильный регион с соответствующими номерами.
Вторая задача - установить правильное время:
$ sudo date --set = "18:37:00"
Или просто найдите время у HW-Clock:
$ 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 in URL - ваш местный часовой пояс
Вы можете использовать utc ... и т. Д.
я могу изменить текущее время в Linux?
Для меня мне нужно было сначала запустить эту команду:
sudo systemctl stop systemd-timesyncd
В противном случае systemd немедленно сбросит время. После остановки службы 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
через мгновение запуск снова дал бы мне системное время.