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

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

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

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

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

$yaourt -S openntpd

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

ru.pool.ntp.org

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

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

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

$sudo crontab -e

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

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

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

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

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

Похожие записи:

  1. Синхронизация времени
  2. Помидорное планирование времени
  3. Gentoo: dhcp & dns
  4. pdnsd – локальный кэширующий dns сервер
  5. Реклама в интернете…

Метки: daemons, Безопасность, советы

Отзывов (9) на «Синхронизация времени»

  • спс :) давно хотел но все руки не доходили заняться :)

  • Рад помочь! ;)

  • у мну pacman -S ntp
    alias gettime=’sudo /usr/bin/ntpdate ru.pool.ntp.org’
    ибо без крона всё, и время сверяю редко

  • руками синхронизируешь? это де помнить надо, что время от времени запускать надо… не проще крон настроить?
    и еще, почему ntp ставишь? а не просто ntpdate? данную команду уже в отдельный пакет вынесли… или ты все таки сервер настраиваешь? ;)

  • Ух ты! Не слышала о таком! Нужно будет в закладки добавить, на всякий случай. Даже не знала, что такое может быть. Спасибо, Juev.

  • ммм, тока сейчас задумался…
    почему надо вносить такукю команду? */30 * * * * /usr/bin/ntpdate –uBs ru.pool.ntp.org

    а не 30 * * * * /usr/bin/ntpdate –uBs ru.pool.ntp.org

    ??

  • @Sundelor посмотри Cron там все подробно описано… ;)

  • умышленно «сдвинул» время на час назад и:
    # /usr/bin/ntpdate -uB ua.pool.ntp.org
    1 Dec 12:16:31 ntpdate[13299]: Can’t adjust the time of day: Invalid argument

    без параметра B:
    # /usr/bin/ntpdate -u ua.pool.ntp.org
    1 Dec 13:38:56 ntpdate[15163]: step time server 82.207.71.2 offset 4789.808787 sec

  • Без понятия почему. На момент написания статьи дело обстояло именно так, как описано.

Вы можете оставить свой комментарий...

Имя (required)
Почта (обязательно)
Сайт