62

Почему вывод следующих команд отличается?

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?

12 ответов12

80

Обычно вам нужно, чтобы время устанавливалось автоматически, и в этом случае вам нужно настроить 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"
34

Установите аппаратные часы на текущее системное время.

# hwclock --systohc

Установите системное время из аппаратных часов.

# hwclock --hctosys
20

просто ntpdate ntp.ubuntu.com и все будет хорошо.

Более подробную информацию об этом можно найти в официальной документации Ubuntu.

12

Другая распространенная, очень раздражающая проблема - когда выбран неправильный часовой пояс ...

Проверьте часовой пояс с выходной датой:

$ date

Пт Авг 23 18:47:04 UTC 2013

Чтобы исправить тип часового пояса:

$ sudo tzselect

и выберите правильный регион с соответствующими номерами.

Вторая задача - установить правильное время:

$ sudo date --set = "18:37:00"

Или просто найдите время у HW-Clock:

$ sudo hwclock --hctosys

2

В 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

Попробуй это:

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

или же

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

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

Для изменения аппаратной даты ПК:

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

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

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

systemctl restart ntpd у меня работает ntpd . Это относится к RHEL и CENTOS OS.

0

я могу изменить текущее время в 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 через мгновение снова дал бы мне системное время.

0

date возвращает время, указанное как время с момента запуска процессора плюс время, указанное внутренними аппаратными часами, hwclock время, которое имеют внутренние часы.

Время на базе процессора имеет тенденцию дрейфовать в течение длительного времени работы машины, что является причиной существования команды hwclock --hctosys . Также является одной из причин использования времени сетевого протокола, который используется для международной координации времени в Интернете.

0

Чтобы установить часовой пояс ваших системных часов, выполните следующие действия:

cp /usr/share/zoneinfo/America/La_Paz /etc/localtime
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 in URL - ваш местный часовой пояс

Вы можете использовать utc ... и т.д.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .