LINUX.ORG.RU
ФорумAdmin

Часы убежали квантовым скачком на час вперед и не вернулись


0

1

Имеем Centos 5.7:

-bash-3.2# uname -a
Linux x.ru 2.6.18-164.el5xen #1 SMP Thu Sep 3 04:47:32 EDT 2009 i686 i686 i386 GNU/Linux

В логах /var/log/messages вычитал:

Mar 12 02:50:16 %HOST_NAME% ntpd[990]: synchronized to x.x.x.x, stratum 3 # NTP-сервер хостера, могли что-то намудрить
Mar 12 02:50:16 %HOST_NAME% ntpd[990]: time correction of -3499 seconds exceeds sanity limit (1000); set clock manually to the correct UTC time.

Захожу под рутом:

Last login: Fri Mar 16 10:42:04 2012 from x.x.x.x # Время правильное

Далее:

-bash-3.2# date
Fri Mar 16 11:47:17 MSK 2012 # На час больше

-bash-3.2# date -u
Fri Mar 16 07:47:19 UTC 2012 # Часовой пояс правильный, +4, время UTC кривое

-bash-3.2# hwclock --version
hwclock from util-linux-2.13-pre7

-bash-3.2# hwclock --set --date=«03/16/12 10:50»
-bash-3.2# date
Fri Mar 16 11:48:45 MSK 2012

-bash-3.2# hwclock --debug
hwclock from util-linux-2.13-pre7
hwclock: Open of /dev/rtc failed, errno=19: No such device.
Using direct I/O instructions to ISA clock.
Last drift adjustment done at 0 seconds after 1969
Last calibration done at 0 seconds after 1969
Hardware clock is on unknown time
Assuming hardware clock is kept in local time.
Waiting for clock tick...
...got clock tick

В соседней ветке почитал про hwclock: Open of /dev/rtc failed, errno=19: No such device, но решения для себя не вижу. Пробовал также service ntpd stop, date -s «10:50», ntpdate x, безуспешно. ЧЯДНТ?

Ответ на: комментарий от kitar

-bash-3.2# hwclock --directisa --systohc # Не помогло

-bash-3.2# dmesg | grep rtc
rtc: IRQ 8 is not free.
Using IPI No-Shortcut mode

-bash-3.2# more /etc/modprobe.conf
alias eth0 xennet

-bash-3.2# lsmod | grep rtc
-bash-3.2# grep -r rtc «/etc/modprobe.d»
/etc/modprobe.d/modprobe.conf.dist:alias char-major-10-135 rtc

-bash-3.2# grep -r rtc «/etc/udev»
/etc/udev/rules.d/50-udev.rules:KERNEL==«rtc», MODE=«0644»

Самое интересное, на втором сервере (Centos 5.5) того же хостера все эти команды дают тот же ответ, но там время правильное и с помощью hwclock удаётся поменять время.

egetmanenko ()
Ответ на: комментарий от egetmanenko

«Все эти команды»? В той теме, по ссылке, главной была команда:

«ls -l /dev/rtc*»

Смотрите когда ваш сервер перегружался (логи, uptime).

Пробовал также service ntpd stop, date -s «10:50», ntpdate x, безуспешно.

А точнее? date не устанавливает время? ntpdate не работает?

mky ★★★★★ ()
Ответ на: комментарий от mky

# date -s «01:30»
Sat Mar 17 01:30:00 MSK 2012

# date
Sat Mar 17 02:32:46 MSK 2012

# ntpdate pool.ntp.org
17 Mar 02:33:05 ntpdate[24882]: step time server 195.189.122.154 offset -3499.720653 sec

# date
Sat Mar 17 02:33:15 MSK 2012

# ls -l /dev/rtc*
crw------- 1 root root 10, 135 Mar 14 22:22 /dev/rtc

egetmanenko ()
Ответ на: комментарий от egetmanenko

alias eth0 xennet

Дак это у вас виртуалка, что ли? Если xen, то по умолчанию часы гостевой ОС совпадают с часами основной ОС (и от ntpd в гостевой ОС смысла нет). Чтобы часы гостевой ОС не зависили от основной, нужно в основной «echo 1 > /proc/sys/xen/independent_wallclock», но у вас к ней нет доступа. Так что, пинайте хостера.

mky ★★★★★ ()
Ответ на: комментарий от mky

Да, машина виртуальная. Оказалось хостер что-то намутил с часами.

Выставил independent_wallclock как вы написали, всё тип-топ. Большое спасибо за помощь!

egetmanenko ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.