Синхронизация времени NTP
Чтобы понять устройство NTP следует знать про концепцию strata или stratum. Авторитетные источники времени, такие как спутники GPS, цезиевые атомные часы, радио волны WWVB — всё это stratum 0. Они авторитетны на том основании, что у них есть некоторый способ поддержания высокоточного хронометража. Можно, конечно, воспользоваться обычными кварцевыми часами, но зная, что за месяц с ними легко потерять 15 секунд, то лучше их не использовать в качестве мерила времени. Stratum 0 это когда секунда не потеряется за 300 000 лет!
Компьютеры, которые напрямую (не по сети!) берут время у stratum 0 — это stratum 1. Так как всегда есть задержки из-за передачи сигнала и затраты на установку времени, то компьютеры stratum 1 не так точны как stratum 0, но в реальной жизни различие достигает пару микросекунд (1 мкс = 10 -6 с), что вполне допустимое отклонение.
Следующий уровень компьютеров, берущих время по сети у stratum 1 — это . барабанная дробь . интрига . stratum 2! Опять таки из-за различных задержек (сетевые точно), stratum 2 чуток отстаёт от stratum 1 и уж точно от stratum 0. На практике это разница от нескольких микросекунд (1 мкс = 10 -6 с) до нескольких миллисекунд (1 мс = 10 -3 с). Многие хотят синхронизироваться со слоем не дальше stratum 2.
Как понятно из схемы, stratum 4 берёт время у вышестоящего stratum 3. stratum 5 у stratum 4 и так далее. stratum 16 считается самым нижним слоем и время там считается несинхронизированным.
Чтобы синхронизировать время с помощью протокола NTP, следует сначала вручную выставить ваше время. Недопустима разница между вашим точным временем и показаниями ваших часов более 1000 секунд. Если используемый вами сервер времени врёт более 1000 миллисекунд (1 секунда), то он будет исключён из списка и будут использоваться другие вместо него. Данный механизм позволяет отсеивать плохие источники времени.
Синхронизируем время в Linux
Для начала давайте уточним, что затронуть абсолютно все дистрибутивы в рамках одной статьи не получится, поэтому за пример мы возьмем самую популярную сборку — Ubuntu. В остальных ОС все происходит практически идентично, а различия наблюдаются лишь в элементах графического интерфейса. Однако если вы в этой статье не найдете интересующей информации, придется воспользоваться официальной документацией дистрибутива, чтобы справиться с поставленной задачей.
Настройка даты через графический интерфейс
Перед тем, как мы приступим к разбору сервисов для синхронизации времени, давайте рассмотрим важную для новичков настройку. Большинство начинающих обладателей Linux предпочитают использовать графическое меню для конфигурации необходимых параметров, это относится и к времени. Весь процесс осуществляется следующим образом:
- Откройте меню приложений и отыщите там «Параметры».
Как видите, ничего сложного во взаимодействии с графическим интерфейсом нет. Однако недостаток этого способа заключается в том, что в меню отсутствуют важные параметры управления сервисом синхронизации, поэтому в определенных ситуациях использовать «Параметры» не получится.
Стандартные команды для управления временем
Все остальные инструкции, которые вы увидите в рамках сегодняшнего материала, заключаются в использовании терминальных команд. В первую очередь мы хотим затронуть тему стандартных опций, позволяющих управлять текущей датой и временем или просматривать нужные сведения.
- Начните с запуска «Терминала». Сделать это можно, например, нажав на соответствующий значок в меню приложений.
После внесения всех изменений остается убедиться в том, что все они вступили в силу. Дополнительную информацию о timedatectl мы предлагаем узнать в официальной документации, поскольку остальные опции уже не входят в рамки темы синхронизации времени, однако могут быть полезны определенным пользователям.
Взаимодействие с сервисом timesyncd
Выше мы посоветовали изучить сведения о timedatectl через официальную документацию, но предлагаем еще на минуту остановиться на этом, чтобы ознакомиться с сервисом timesyncd. Именно эта утилита отвечает за синхронизацию времени в операционной системе по умолчанию.
- Для определения текущего статуса timesyncd используйте команду timedatectl в консоли.
Установка NTPD
Последний раздел нашего сегодняшнего материала будет посвящен замене упомянутого выше сервиса синхронизации времени на более надежный протокол NTPD (Network Time Protocol daemon). Именно его раньше задействовали во многих дистрибутивах по умолчанию и хвалили за корректное взаимодействие с особо чувствительными ко времени приложениями. Инсталляция и замена сервиса происходит так:
- Для начала отключите стандартную утилиту, введя sudo timedatectl set-ntp no .
Network Time Protocol daemon будет активирован автоматически, поэтому никаких дополнительных команд вводить не нужно. Вы можете сразу же приступить к тестированию проблемных приложений или выполнять другие действия, ради которых и осуществлялась инсталляция нового сервиса синхронизации времени.
Как видите, синхронизация времени и даты в Linux осуществляется автоматически, поэтому очень редко случаются ситуации, когда требуется активировать этот параметр или поменять другие опции. Теперь, изучив представленный материал, вы знаете, что существуют разные инструменты синхронизации, а настройка также может осуществляться через графическое меню.
Мы рады, что смогли помочь Вам в решении проблемы.
Помимо этой статьи, на сайте еще 12388 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.
Отблагодарите автора, поделитесь статьей в социальных сетях.
Опишите, что у вас не получилось. Наши специалисты постараются ответить максимально быстро.
Настройка синхронизации времени в Linux Ubuntu
По-умолчанию в операционной системе Ubuntu, начиная с версии 9.10, время синхронизируется автоматически при каждом запуске ОС. Но не лишнем будет это проверить и убедится в правильности работы синхронизации.
Чтобы синхронизировать время в Ubuntu нам нужно:
- Установить пакет синхронизации времени ntp:
- ntp1.imvp.ru
- ntp.psn.ru
- time.nist.gov
- pool.ntp.org
- ru.pool.ntp.org
Обратите внимание на кавычки. Такое написание правильное.
После каждого включения компьютера ваше время будет синхронизировано через Интернет и всегда будет актуальным. Если есть необходимость синхронизировать время вручную, то делается это командой:
В качестве сервера можно указать любой другой NTP-сервер или через пробел указать несколько серверов.
Большинство продавцов и торговых фирм, которые реализовывают терминалы сбора данных Casio, хваля залежалые модели, обязательно отмечают присутствие интерфейса Bluetooth. При этом они умалчивают, что этот терминал сбора данных не имеет Wi-Fi модуля, который более востребован в работе. Bluetooth больше подходит для связи с мобильным принтером для быстрой печати ценников, а не для передачи данных на сервер, что нужнее чаще.
При покупке терминала следует обратить на это внимание.
- Безопасное извлечение флешки для Linux
- Ключи репозитория в Ubuntu
- Полуавтоматическая загрузка видео с Youtube в Ubuntu
- Компонента V7Plus.dll не найдена
- Подсветка синтаксиса man-страниц в Linux или как задать цвет в редакторе less
- Плагины для Opera
- Создание загрузочной флешки Windows из ISO-образа
- Александр #
3 сентября, 18:07
Спасибо. Добавил в свой список “how-to”
доброго времени суток!
наскольо сам помню тему, параметр
ntpd_enable=»YES»
не отвечает за “Настраиваем автоматическую синхронизацию при каждой загрузке ОС”, если точнее, он отвечает за запуск демона ntpd, который сам себе достаточно умный и сам решает когда синхронизироваться…
в Ubuntu синхронизация времени как раз и происходит при поднятии сетевого интерфейса (см. файл /etc/network/if-up.d/ntpdate)…
при чём “дебиановцы” умные ребята,- запуск “нтпдейт” настроен таким образом, что, если в системе, будет установлен полный пакет “нтп”, “нтпдейт” не будет мешать работе “нтп”, более того он (“нтпдейт”) в своей работе будет использовать настройки “нтп”…
в чём разница между этими двумя пакетами?
“нтпдейт” просто утилита которая запускается, выполняет работу и уходит… её можно сравнить с таким поведением: Вы просыпаетесь утром, набираете на телефоне службу точного времени, подводите часы, если они отстают, и не вспоминаете про часы до следующего утра…
“нтп” это демон, процесс постоянно висящий в памяти и постоянно делающий работу… его можно описать так: Вы нанимаете рабочего, который каждые десять минут (к примеру) звонит в службу точного времени и подводит часы, при этом он ведёт журнал, в котором записывает насколько он каждый раз подвёл часы… благодаря журналу даже если у Вас отключат телефон (пропало соединение с серверами верхних уровней) работник (“нпт”) сможет и сам подводить часы…
у меня в “локалке” я настроил сервер времени используя “нпт”… он раздаёт точное время доменным контроллерам (на “оффтопике”)… моё ИМХО – в локалке такой сервер нужен, дома хватает и “нтпдейта”…
У меня Mint 9, в нем нет файла /etc/rc.conf, что делать чтобы автоматически при каждой загрузке ОС была синхронизация?
В rc.conf нет параметра “ntpd_enable” для РЕДАКТИРОВАНИЯ =)
Но есть параметр “exit” с параметром “0”. Прочитал закоменченную сопроводиловку в файле – ниче толком не понял )
Я так понимаю логично было бы добавить ntpd_enable=»YES» ДО “exit 0”.
Но шипко смущает фраза
>> … By default this script does nothing.
Таки надо “exit 1”?
ОС – Убунту 10.04 с последними обновлениями
x0r: наскольо сам помню тему, параметр ntpd_enable=»YES» не отвечает за “Настраиваем автоматическую синхронизацию при каждой загрузке ОС”, если точнее, он отвечает за запуск демона ntpd, который сам себе достаточно умный и сам решает когда синхронизироваться…
Спасибо, за развернутый комментарий.
полезная статья! только для камчатски вроде как бесполезная :))
зы: почаще бы обновлялся раздел статей на вашем сайте;)
Спасибо за столь разжеванную статью. Очень полезная функция. Жаль, что она не встроена в саму утилиту настройки времени как в винде…
root@desktop:/home/pupkin# crontab -l
# m h dom mon dow command
* */8 * * * ntpdate ru.pool.ntp.org
ntpdate есть из коробки.
Очень тупой вопрос. А разве время не синхронизируется само?
Замечания по оговоркам в статье:
1) Тысячная миллисекунды называется микросекундой
2) Первичные сервера находятся не в КРОНЕ , а в КОРНЕ дерева серверов.
Переключение на NTPD
Хотя timesyncd прекрасно подходит для большинства целей, некоторые приложения, которые очень чувствительны даже к малейшим возмущениям во времени может быть лучше обслуживаться ntpd, так как он использует более изощренные методы, чтобы постоянно и постепенно поддерживать системное время.
Перед установкой ntpd, мы должны выключить timesyncd:
Убедитесь в том, что timesyncd выключен:
Посмотрите Network time on: no на выходе. Это средство timesyncd было остановлено. Теперь мы можем установить пакет ntp с apt-get :
Ntpd будет запущен автоматически после установки. Вы можете запросить ntpd для получения информации о состоянии, чтобы убедиться, что все работает:
ntpq является инструментом для запроса ntpd. Флаг -p запрашивает информацию о NTP – подключенных серверах ntpd. Ваш выход будет немного отличаться, но должны быть перечислены стандартные серверы пулаUbuntu плюс несколько других. Имейте в виду, что это может занять несколько минут ntpd для установления соединения.
Эти статьи будут Вам интересны
Анализ MEMORY.DMP после возникновения «Синего экрана смерти» (BSOD)
Синий экран для владельцев ПК с ОС Windows скорее норма, нежели что-то из ряда вон выходящее. Однако сам код ошибки, который мы можем увидеть на экране иногда бывает неинформативен, а ещё чаще ПК перезагружается раньше, чем мы можем его запомнить. На этот случай у нас есть файл MEMORY.DMP, который хранит всю информацию о падении системы. Показываем, как его проанализировать.
Штрих-М: Исчерпан ресурс хранения
27 сентября 2018 ВК Tw Fb
В один прекрасный день это случилось с нашими клиентами: при попытке пробить чек в 1С:Рознице появилось это волшебное сообщение. Что же случилось?
FreeBSD 11: меняем csh на bash и русифицируем терминал
Командных интерпретаторов много, но самым удобным (наверно) является bash. По умолчанию во FreeBSD в качестве командного интерпретатора установлен csh (проверить это можно командой echo $SHELL). Меняем его на bash, а также русифицируем!
База знаний «Try 2 Fix» Beta
Все материалы свободны
к распространению с обязательным
указанием источника
Команда для синхронизации времени в линуксе
01 июл 2019, 14:49
Как везде пишут, уже в Ubuntu 18.04, соответственно и в Mint 19, синхронизация времени осуществляется через systemd.
Действительно, при запросе systemctl is-active ntpd выдаётся inactive. То есть, при синхронизации времени система не смотрит на etc/ntp.conf, а должна руководствоваться настройкой timesyncd.
В своём посте systemd-timesyncd в Linux Mint Chocobo уквзывал, что настройка timesyncd осуществляется через файл /etc/systemd/timesyncd.conf Однако все строки моего файла закомментированы:
Возможно, это связано с тем, что dhcp моего роутера вместе с серверами DNS выдаёт клиентам 2 сервера NTP: 62.149.2.62 и 62.149.2.126, соответствующие ntp1.colocall.net и ntp2.colocall.net (при выборах получается, что ответ от ntp2.colocall.net приходит чуть-чуть быстрее и время синхронизируется по нему). Глубинного механизма или conf, в котором бы клиенту компьютера были явно указаны серверы NTP от dhcp мной найдено не было. При этом получаемые от dhcp DNS серверы найдены в /run/systemd/resolve/resolv.conf
Как пишут, ntpq – это инструмент запросов для ntpd. Флаг –p запрашивает данные о серверах NTP, к которым подключается ntpd. Запрос ntpq -p также выдаёт результат, в котором указан сервер NTP, с которым часы компьютера были синхронизированы:
Частные вопросы по синхронизации времени в Linux Mint 19
01 июл 2019, 16:05
Частные вопросы по синхронизации времени в Linux Mint 19
01 июл 2019, 17:19
Также NTP сервера могут быть предусмотрены в systemd-networkd конфигурации с опцией NTP= или динамически через DHCP сервер.
- Приоритетно — с любого интерфейса NTP серверов, полученных из конфигурации systemd-networkd.service(8) или через DHCP.
- Сервера NTP, указанные в /etc/systemd/timesyncd.conf будут добавлены в список интерфейса после получения ответа от серверов в процессе соединения с ними.
- Если после выполнения действий выше информация о серверах NTP не будет получена, то будет использоваться имя хоста и IP адреса, указанные в FallbackNTP=.
Частные вопросы по синхронизации времени в Linux Mint 19
01 июл 2019, 18:22
Ситуация получилась любопытная.
На запрос timedatectl timesync-status получен ответ Unknown operation timesync-status
На запрос systemctl is-active ntpd получен ответ inactive
На запрос systemctl is-active systemd-timesyncd получен ответ inactive
На запрос timedatectl получен ответ:
На запрос ntpstat получен ответ:
synchronised to NTP server (62.149.2.126) at stratum 3
time correct to within 83 ms
polling server every 1024 s
При вызове System Manager (ПО управления службами через GUI, но на git этого ПО уже нету):
Судя по галочке справа ntp и аналогично крестику в отношении systemd-timesyncd, работает, всё-таки, ntpd.
systemd-timesyncd помечена как активная (галочка слева), но в данный момент не работающая.
ntpd помечена как активная и работающая.
Выходит, что предположение о переводе синхронизации времени в Linux Mint 19 на systemd неверное ?
При переключении на просмотр логов найдено, что ntpd была запущена (через какое-то время после старта системы):
В итоге имеется 2 предположения:
а) имеющийся Linux Mint 19.1 пока находится в «промежуточном» варианте и в будущем синхронизация времени разработчиками может быть переведена на systemd без «телодвижений» со стороны пользователя;
б) картина обусловлена тем, что продолжает использоваться Network Manager. Если бы были осуществлены мероприятия по перенастройке получения адреса через systemd, то это, возможно, «потянуло» бы за собой необходимость и полной перенастройки синхронизации времени через systemd.
Использовать местное время
Есть и другие способы установить время в Linux, кроме NTP. Самая популярная альтернатива этому методу — «местное время». Местное время говорит Linux, что нужно следить за временем, но не синхронизировать ни с чем. По сути, он будет держать время автономным и ни во что не вмешиваться. Это менее надежно, но работает. Вопрос в том, зачем вам это нужно?
Основная причина, по которой можно использовать местное время, а не что-то вроде NTP, заключается в том, что двойная загрузка мешает вашему времени. Если вы когда-либо загружали Linux, а затем перезагружались в Windows 10, вы заметите временные паузы. Это связано с тем, что обе операционные системы имеют службу синхронизации времени и борются друг с другом. Основной способ исправить это — отключить синхронизацию времени в Linux.
Примечание: имейте в виду, что даже если вы настроили Linux на использование местного времени, Windows все равно может столкнуться с проблемами. Обязательно проверьте настройки времени Windows, чтобы убедиться, что больше не возникает конфликтов с двумя операционными системами.
Запуск timedatectl должен исправить это:
После возврата к местному времени вам может потребоваться перезагрузить компьютер. После повторного входа в систему все должно использовать местное время.
Хотите отключить местное время? Если это так, вам нужно будет повторно запустить команду timedatectl. Попробуйте команду ниже.
Как и раньше, перезагрузите компьютер с Linux для хорошей меры. При следующем входе в систему местное время использоваться не должно.