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

Вас никогда не касалась проблема неточного времени на компьютере? Нет? Ну тогда вам сильно повезло...

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

Существует несколько способов решения данной проблемы. Я как водиться, очень долго пользовался сложным методом... А именно организация собственного сервера точного времени. В дистрибутивах Linux существует целый ряд серверов, основными являются <strong>ntpd</strong> и <strong>openntpd</strong>... Последний является портом сервера openbsd, с улучшенной безопасностью и простотой настройки, потому именно его я и использовал.

Устанавливается с помощью пакетного менеджера дистрибутива. Для примера возьму archlinux:

```shell
$ yaourt -S openntpd
```

И теперь остается только его настроить. настройка тривиальна и заключается только в прописывании серверов, с которыми будет проводиться синхронизация. По умолчанию сервер настроен на работу в качестве локального сервера, то есть он не принимает запросы извне. Беспокоиться об этом не нужно. В качестве серверов времени для России оптимально использовать пулы:

```conf
ru.pool.ntp.org
```

Время задержки во время синхронизации будет минимальным и время будет более точным. Настройка openntpd осуществляется правкой конфига <em>/etc/ntpd.conf,</em> файл хорошо прокомментирован, поэтому останавливать на том, где и что прописывать, не буду.

Довольно долгое время я использовал данный метод, пока не осознал, что он избыточен для домашней машины... И существует простой метод установки точного времени на компьютере без поддержки в рабочем состоянии отдельного сервиса.

Заключается метод в вызове команды <strong>ntpdate</strong>. А для того, чтобы не запускать ее руками, заносим вызов команды в <em>crontab</em>:

```shell
$ sudo crontab -e
```

После этой команды открывается редактор vim, предоставляющий возможность путем внесения записей в список команд задавать определенное расписание. В конец добавляем строку, для этого жмем на клавишу <strong>i</strong>, переходим в конец файла, при необходимости создаем новую строку и прописываем следующее:

```conf
*/30 * * * * /usr/bin/ntpdate -uBs ru.pool.ntp.org
```

После чего нажимаем <strong>Esc</strong> и два раза на <strong>Z</strong> для сохранения и закрытия файла.

Данная строка позволит запускать команду <strong>ntpdate</strong> каждые полчаса. Параметр <strong>u</strong> позволяет программе использовать непривилегированные порты для синхронизацией с серверами точного времени, что увеличивает безопасность и уменьшает вероятность ошибки. Параметр <strong>B</strong> позволяет проводить синхронизацию и в том случае, если часы на компьютере спешат/отстают более чем на 128мс. Без использования данного параметра при подобных отклонениях синхронизация просто не будет проводиться. А параметр <strong>s</strong> позволяет направить вывод программы в <em>syslog</em>, предоставляя тем самым возможность контролировать ее работу.

Естественно, что во втором случае точность часов будет чуть ниже, чем при использовании сервера точного времени. Но и этого вполне достаточно для домашней машины. А что использовать вам -- зависит только от вас!

