Все знают что синхронизация времени полезная штука. Поскольку это сервис то я решил его сделать в jail’e , кто-то может не согласится и сказать что NTP серверу в jaile’e делать нечего. Это его мнение ну а я просто напишу как его там запустить.
1) У нас уже есть созданный jail, пусть его будут звать ntp
В нем мы настроим стандартный демон ntpd.
Сразу хочу сказать поскольку jail не может менять время в host системе (можно изменить только временную зону), мы настроим ntpd таким образом что бы он синхронизировался сам с собой. Да я знаю что это плохо но об этом мы поговорим ниже, а сейчас собственно настройки ntpd.
ntp# cat /etc/ntp.conf
server 127.127.1.0 minpoll 4 maxpoll 4 iburst
fudge 127.127.1.0 stratum 10 refid LCL
Тут видно что сервер настроен на синхронизацию сам с собой. При такой синхронизации велика вероятность погрешности и нам нужно host систему синхронизировать с каким то из внешних серверов.
Добавим эти строки в /etc/rc.conf
ntpd_enable="YES"
ntpd_flags="-g -l /var/log/ntpd.log -p /var/run/ntpd.pid -f /var/db/ntpd.drift"
В моем случае host система имела доступ в инетрнет только через proxy — это еще одна причина не использовать ntpd на host системе так как ntpd не работает через proxy. По этому на host системе запускается htpdate который может синхронизировать системное время с внешним сервером через proxy.
2) Установим htpdate
host# cd /usr/ports/net/htpdate
host# make install clean
3) Добавим в crontab запись
host# cat /etc/crontab
0 */2 * * * root /usr/local/bin/htpdate -s -P proxy:8080 1.ru.pool.ntp.org
Вот так, ничего сложного. Может быть кто знает вариант покрасивей , как запустить ntp в jail’e ?