Команда linux "date -s" не работает для изменения даты на сервере

date +%T --set="12:19:06"
12:19:06
date
Mon Nov 26 12:37:32 SAST 2012

date 112613232012
Mon Nov 26 13:23:00 SAST 2012
date
Mon Nov 26 13:42:27 SAST 2012

Я пробовал много разных форм этой команды, но ничего не шло работать. При изменении даты на этом компьютере сервер, работающий как ВМ, не работает.

Наш журнал сообщений показывает сообщения, подобные этой

ntpd[3496]: коррекция времени на -1098 секунд превышает допустимый предел (1000); установите часы вручную на правильное время UTC.

Наш сервер сейчас около 20 минут.

Похоже, наш сервер не обновлял время правильно в течение нескольких дней.

22 ноября 19:29:23 имя хоста ntpd [1818]: время сброса -998,577519 с
Ноя 22 19:32:34 hostname ntpd [1818]: синхронизировано с LOCAL(0), страта 10
Ноя 22 19:33:39 hostname ntpd [1818]: синхронизировано с 41.134.20.28, уровень 1
22 ноября 19:52:30 имя хоста ntpd [1818]: время сброса -998,992426 с
22 ноября, 19:55:47 имя хоста ntpd [1818]: синхронизировано с LOCAL(0), уровень 10
22 ноября, 19:56:53 имя хоста ntpd [1818]: синхронизировано с 41.134.20.28, уровень 1
22 ноября 20:13:04 hostname ntpd [1818]: время сброса -999,374412 с
22 ноября 20:16:40 hostname ntpd[1818]: синхронизировано с LOCAL(0), страта 10
22 ноября 20:17:44 имя хоста ntpd [1818]: синхронизировано с 41.134.20.28, уровень 1
22 ноября 20:32:02 hostname ntpd [1818]: время сброса -999,716832 с
22 ноября 20:35:28 имя хоста ntpd [1818]: синхронизировано с LOCAL(0), уровень 10
22 ноября 20:36:16 имя хоста ntpd [1818]: синхронизировано с 41.134.20.28, уровень 1
22 ноября 20:56:39 hostname ntpd[1818]: коррекция времени на -1000 секунд превышает допустимый предел (1000); установите часы вручную на правильное время UTC.

2 ответа

Решение

http://www.linuxforum.com/threads/2154-Linux-ntp-time-Offset-on-Xen-VM-incorrect

После долгих поисков я обнаружил, что по умолчанию часы ВМ синхронизируются с часами HOST, работающими в управляющем домене, и не могут быть изменены независимо. Это было удивительно для меня, потому что NTP все еще был настроен и, казалось, мог синхронизировать часы.

добавьте следующую строку в ваш файл /etc/sysctl.conf

# Allow the VM to update it's own clock, and do not use the DOM host clock.
xen.independent_wallclock=1

затем перезапустите сетевой сервис

/etc/init.d/network restart #for redhat, centos, fedora
/etc/init.d/networking restart #debian, ubuntu

теперь вы можете установить дату с date -s ...

Вот ссылка на официальные документы xen
Вот ссылка на документы NTP

Для пользователей Mageia и его родителей (RedHat, Mandrake, Mandriva) мы установим ntp и ntp-клиент с urpmi команда:

# urpmi ntp ntp-client

Затем мы запустим сервис и включим его автоматический запуск при перезагрузке.

# systemctl start chronyd.service
# systemctl enable chronyd.service

Теперь мы проверим, включена ли timedatectl синхронизация сетевого времени по протоколу NTP:

# timedatectl status
Local time: Wed 2016-12-07 13:39:04 EET
Universal time: Wed 2016-12-07 11:39:04 UTC
RTC time: Wed 2016-12-07 11:38:56
Timezone: Europe/Bucharest (EET, +0200)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2016-10-30 03:59:59 EEST
Sun 2016-10-30 03:00:00 EET
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2017-03-26 02:59:59 EET
Sun 2017-03-26 04:00:00 EEST
# date
Wed Dec  7 13:39:11 EET 2016
# timedatectl set-timezone Europe/Bucharest
# date
Wed Dec  7 13:39:48 EET 2016
#

Без включения синхронизации NTP часовой пояс / время не изменится.

Теперь мы включим сетевую синхронизацию времени на основе NTP и установим новый часовой пояс:

# timedatectl set-ntp 1
# timedatectl set-timezone Europe/Bucharest
# date
Wed Dec  7 10:43:33 EET 2016
# timedatectl status
Local time: Wed 2016-12-07 10:43:59 EET
Universal time: Wed 2016-12-07 08:43:59 UTC
RTC time: Wed 2016-12-07 08:43:59
Timezone: Europe/Bucharest (EET, +0200)
NTP enabled: yes  
NTP synchronized: yes
RTC in local TZ: no
DST active: no
Last DST change: DST ended at
Sun 2016-10-30 03:59:59 EEST
Sun 2016-10-30 03:00:00 EET
Next DST change: DST begins (the clock jumps one hour forward) at
Sun 2017-03-26 02:59:59 EET
Sun 2017-03-26 04:00:00 EEST
Другие вопросы по тегам