Как стать автором
Обновить

Синхронизация времени через http

Время на прочтение1 мин
Количество просмотров4.2K

Вот наконец решил разобраться с вечной проблемой на своем рабочем месте: часы убегают вперед на несколько минут.
Корпоративная сеть — Windows домен, выход в интернет только через proxy сервер.

Все Windows машины получают время от доменного контроллера, но у меня рабочая станция Ubuntu в связи с производственной необходимостью. NTP сервера в округе я не нашел.
И вот наконец раздражение пересилило лень и я написал скриптик который синхронизирует время через http. Конечно если вам нужна точность времени в пределах секунды то Вам такой способ не подойдет, но если Вас устроит погрешность в секунду — две то с задачей он справится.



Весь скрипт состоит из пары строк на python.

from urllib import urlopen
import os

proxies = {'http': 'http://localhost:3128'}
#Request google index page
headers = urlopen('http://google.com/', proxies=proxies).info()
date = "date -s \"" + headers.getheader('Date') + "\""
print "Google Date:" + date
print os.popen(date).read()

* This source code was highlighted with Source Code Highlighter.


Принцип работы:
В протоколе http есть поле в котором указано серверное время.
То есть достаточно выбрать сервер которому доверяем и сделать любой запрос, получить значение времени из заголовков, и установить его как системное.

Записываем в crontab расписание запуска, а переменной proxies устанавливаем адрес корпоративной proxy, и вовремя приходим на митинги :-)

PS: Конечно каждый может сделать это сам за 5мин, уверен есть те кто может сделать это за 5 сек, но также есть те кому просто лень :-) этот пост для них.

Теги:
Хабы:
Всего голосов 26: ↑19 и ↓7+12
Комментарии23

Публикации