Я провожу некоторые эксперименты в сети из примерно 10 удаленных компьютеров Linux, которые географически разбросаны.
Я подозреваю, что у некоторых из них есть перекосы часов, но они наблюдаются кратковременно (например, раз в неделю или два раза в месяц).
Мне было интересно, существуют ли какие-то инструменты, которые могли бы обнаружить и количественно оценить такие перекосы часов. Также интересно, является ли перекос часов правильным термином для того, что я наблюдаю, или это можно назвать синхронизацией часов.
решение1
Вы пытаетесь синхронизировать часы с правильным временем или пытаетесь определить, насколько точны часы реального времени, не синхронизируя их?
Если вы просто хотите, чтобы время было правильным, есть целая иерархия серверов времени, с которыми могут синхронизироваться системы, и она часто встроена в ОС, хотя обычно вы можете указать серверы времени. Кроме того, одна система может синхронизироваться с сервером времени, а затем запустить свой собственный сервер времени для синхронизации с другими системами.
Я видел и даже использовал в прошлом программы, которые не только синхронизируются со стандартным временем, но и учитывают дрейф локального компьютера с последней синхронизации. Я использовал это в прошлом, когда у нас были прерывистые интернет-соединения, поэтому программа корректировала время, используя историю ожидаемого дрейфа.
Обычно при использовании любого из этих методов, если коррекция слишком велика, система может предположить наличие ошибки и вообще не выполнять никакой коррекции.
Надеюсь, я не совсем упустил вашу мысль. :)
решение2
Используйте для этого NTP-демон.
Определите количество независимых ntp-серверов для связи (ntp.conf, server-directive). 3 сервера — хорошо, больше — лучше.
Network-time-protocol отсортирует "плохие" источники времени. Посмотрите на вывод после ntpq -p
того, как вы запустили его ntpd
на пару часов.
Вы увидите, какой основной сервер был выбран, какие из них считаются "хорошими", а какие - "плохими". Вывод также содержитдрожаниеи задержка (компенсировать). Вероятно, это те значения, которые вы ищете...
решение3
Утилита crony имеет файл дрейфа. Смотрите:http://chrony.tuxfamily.org/manual.html#Обзор-опций-конфигурации
Я не знаю формат этого файла, так как сам его еще не устанавливал. В нем есть команда для просмотра информации о дрейфе: chronyc sourcestats -v
Я планирую установить crony на свои виртуальные машины для начала.
Этот сайт выглядит полезным:http://www.markus-gattol.name/ws/time.html
решение4
Если это того стоит, мне вчера самому нужно было проверить уровень перекоса между двумя системами Linux. Прежде чем начать копать в поисках инструментов, я использовал этот ненаучный метод, который дал мне достаточно хорошие результаты для моих целей (сравнение временных меток выходных данных журналов из двух систем).
- Запустите сеанс Putty на каждой системе и выровняйте их бок о бок.
Выполните следующую команду на обеих системах:
$ while true; do date +%H:%M:%S.%N; done
- Сделайте снимок экрана и сравните последние записи в каждом окне.
Может быть кому-то полезно в трудную минуту!