
У меня есть система Debian Jessie Linux с внутренними часами RTC, которые пользователь может настраивать или изменять. Они могут быть подключены или не подключены к внешнему IP и, следовательно, могут иметь или не иметь доступ к NTP. Я хотел бы предоставить в пользовательском интерфейсе настройки часов опцию «установить из NTP», если она доступна, но я не хочу, чтобы системные часы постоянно обновлялись с NTP.
- Как настроить ntpd так, чтобы он был активен, но не обновлял системные часы?
- Как можно прочитать и отобразить «время ntp» (которое будет показано вместе с системными часами)? (Подойдет C или Python)
решение1
Самый простой способ избежать обновления системных часов с помощью NTP — не запускать его.
Вместо этого используйте функцию « ntpdate
по запросу», чтобы узнать у потенциальных удаленных NTP-серверов, насколько неверны ваши локальные часы.
ntpdate -qu 0.pool.ntp.org 1.pool.ntp.org 2.pool.ntp.org
server 212.47.239.163, stratum 2, offset 0.000638, delay 0.03052
server 92.243.6.5, stratum 3, offset -0.001490, delay 0.03011
...
4 Oct 00:00:55 ntpdate[10962]: adjust time server 91.121.167.54 offset -0.000156 sec
В этом режиме ntpdate
даже не требуется запуск от имени root, поэтому вы можете быть уверены, что нет никакой возможности «случайно» обновить ваши локальные часы.
Кстати, известно ли вам, что он ntpd
может работать в условиях отключения от вышестоящих серверов времени, и что работа демона в течение длительного периода времени может помочь минимизировать дрейф, присущий большинству системных часов?