База знанийTry 2 Fix beta
База знаний
Try 2 Fix beta
31 октября 2018 ВК Tw Fb
Любой сервер нуждается в выставлении точного времени. Это нужно для самых различных вещей, начиная от сбора корректных логов, заканчивая работой WEB-приложений, в работе которых участвуют сертификаты. Установка точного времени складывается из двух частей: синхронизация самого времени и установка правильного часового пояса. Посмотрим, как нам это сделать.
Признание проблемы — это половина её решения. Давайте проверим, что на нашем тестовом сервере со временем:
Увидим примерно такой вывод:
День недели и месяц (на момент написания статьи) совпадают с реальным, а вот время и часовой пояс (-1) явно не наши.
Займёмся сначала установкой часового пояса. Для этого от имени суперпользователя выполним команду:
Внутри консоли откроется окно, в котором нам надо будет выбрать нужный часовой пояс. После выбора и подтверждения в консоли увидим:
Всё отлично, наш часовой пояс изменился. Осталось только синхронизировать время. Для этого воспользуемся командой
Если пакет ntpdate не установлен, то его можно установить одной командой:
Ещё раз проверим время командой date. Готово! Время нашего сервера синхронизировано!
Синхронизация времени через Интернет в Ubuntu
В нашем мире все относительно. И время не исключение. Если точное время наручных часов зависит от их стоимости и производителя, то время на компьютере зависит, в первую очередь, от частоты синхронизации с серверами точного времени.
Автоматическая синхронизация точного времени с сервером расположенным в Интернете — это хороший способ держать электронные часы ОС всегда «подведенными». Благодаря этому на вашем компьютере часы будут показывать всегда актуальное время.
Как работает синхронизация времени через Интернет?
Синхронизация времени производится посредством специального протокола передачи данных — NTP (Network Time Protocol). Этот протокол включает в себя набор сложных алгоритмов, которые позволяют с большой точностью синхронизировать время (до тысячных миллисекунд расхождения).
Есть более упрощенная версия этого протокола — SNTP (Simple Network Time Protocol), который используется в сетях, где не требуется высокая точность синхронизации (до 1 сек. расхождения).
Вся модель синхронизации времени NTP выглядит в виде дерева. В «кроне» этого дерева находятся «первичные сервера». Таких серверов во всем мире несколько штук. На них чаще всего установлены атомные часы и другие дорогостоящие хронометры. Синхронизировать время с «первичными» серверами у Вас не получится либо из-за их большой загруженности, либо из-за ограничения самими серверами.
«Вторичные» сервера синхронизируются с серверами первого уровня посредством протокола NTP. Расхождение по времени между ними достигает порядка 20 миллисекунд. Таких серверов значительно больше и поэтому целесообразней настраивать синхронизацию именно с ними.
После этого могут идти сервера третьего, четвертого уровня и т. д., к которым чаще всего относятся сервера синхронизации времени различных провайдеров и других IT-компаний.
Настройка синхронизации времени в 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 больше подходит для связи с мобильным принтером для быстрой печати ценников, а не для передачи данных на сервер, что нужнее чаще.
При покупке терминала следует обратить на это внимание.
- Обновление версии Ubuntu из ISO-образа
- Полуавтоматическая загрузка видео с Youtube в Ubuntu
- Ключи репозитория в Ubuntu
- Как экспортировать письма из Evolution в Claws Mail
- Просмотр ext3/ext4 разделов в Windows
- Меняем интерфейс Grub2 с помощью Burg
- Как подключиться к MySQL удаленно?
- Александр #
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, который сам себе достаточно умный и сам решает когда синхронизироваться…
Спасибо, за развернутый комментарий.
полезная статья! только для камчатски вроде как бесполезная :))
зы: почаще бы обновлялся раздел статей на вашем сайте;)
Спасибо за столь разжеванную статью. Очень полезная функция. Жаль, что она не встроена в саму утилиту настройки времени как в винде…
Related Posts
6 thoughts on “How to Synchronize Time with NTP in Linux”
I have a dual boot W10/Ubuntu PC. When I boot to Ubuntu from W10, the displayed time is correct before the Ubuntu home page comes up, then decreases by 4 hours when the Ubuntu home page is displayed.
When booting back to W10, the time stays in error by 4 hours.
How do I get correct time without having to synchronize after every boot ?
Use ntpdate on machine where you don’t want to run a NTP server. A simple Cron task can automate time synchronization with a upstream NTP server.
Часовой пояс не меняется…
- Попробуем установить часы в Кали Линукс вручную. Пробиваем установленный сервис NTP
если он есть, и терминал ответил об имеющейся обновлённой версии, остановим синхронизацию, чтобы та не мешала:
Теперь ставим системное время по кухонным часам по принципу:
Можно воспользоваться лишь одной из команд, если, допустим, текущая дата нас устраивает. Вобщем, разберётесь.
- независимо от результата в текущей сессии Кали лучше сразу установить правильную временную зону, чтобы не было непоняток с переводом часов, «прыгающими» часовыми поясами и т.п.
Пролистываем список клавишей PageDown. В моём городе это московское время. Т.е. Europe/Moscow. Этот формат я применю в следующей команде, покинув список через Ctrl + C:
Кем-то рекомендуется использовать именно международное время UTC (именно его ваши часы и показывали). Зачем — не знаю, но вот команда:
Время будет координироваться самостоятельно. Либо по универсальному времени:
Настройка сервера rsync
Первым делом необходимо настроить rsync-сервер на обоих компьютерах. В моих системах пакет rsync установлен по умолчанию. Если в вашей системе это не так, установите его способом, принятым в вашей системе. Для Debian-подобных систем будет достаточно команды:
После установки пакета, необходимо разрешить его автозапуск в файле /etc/default/rsync:
И убедиться в том, что скрипт запуска вызывается при старте системы:
Далее, необходимо открыть доступ для клиентов rsync к нужным каталогам. В моём случае понадобилось предоставить доступ лишь к домашним каталогам на ноутбуке и рабочей станции. Вот пример моего файла настроек /etc/rsyncd.conf (имейте ввиду, что по умолчанию этого файла нет в системе, даже пустого):
Используемые параметры описаны здесь. В данном же случае хочу обратить ваше внимание на следующее:
- параметр log file можно не указывать, если вам это не нужно. Я же предпочитаю протоколировать всё, что только можно;
- если вы не определите параметр log file, то нет смысла в определении transfer logging;
- transfer logging в большинстве случаев полезен лишь на стадии тестирования, поэтому его можно и не включать в целях экономии ресурсов системы;
- обратите внимание на значение параметра hosts allow в примере и замените его на соответствующее вашему случаю имя компьютера или IP-адрес;
- тоже самое касается и параметров uid и gid.
Всё, сервер можно считать настроенным. Перезапустите его, чтобы сделать готовым принимать входящие подключения:
Выводы
Это лишь малая часть того, что может rsync Linux! Это невероятно мощная утилита, о которой должен знать и уметь пользоваться каждый системный администратор или разработчик Linux. В этом руководстве мы разобрались с основами — установкой и основными командами. Если вас интересуют более продвинутые функции, продолжайте знакомиться с ними в официальной документации.
Приготовьтесь быть ещё более эффективным! Успехов с вашими проектами!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Файлы в унисон
Если приходится часто работать на разных копьютерах очень быстро наскучит вручную переносить файлы. Если системы соединены между собой сетью, то проще организовать автоматическую синхронизацию данных между ними. Посмотрим, что есть для этого в Linux.
Вообще в Unix довольно много утилит позволяющих организовать резервное копирование изменившихся файлов, которых можно настроить в режиме синхронизации данных. Самым популярным решением является rsync (rsync.samba.org) . Эта утилита умеет рекурсивно выполнять синхронизацию файлов и каталогов, причем используемый алгоритм позволяет минимизировать трафик, возможно и сжатие информации. Администраторы давно и с успехом используют эту утилиту, например чтобы создать копию домашнего каталога на удаленной системе достаточно ввести:
$ rsync -Hbaz -e ssh /home/grinder/ grinder@comp2:backup
Для удобства можно запустить демон, который будет в фоне выполнять поставленную задачу. Но обычный пользователь вряд ли буде в восторге от процесса настройки, тем более что с синхронизацией придется чуток повозиться. Поэтому вводим в консоли «apt-cache search synchronization» и смотрим, что попало в наши сети.
Проект Unison
bcpierce/unison/) изначально разработана Бенджамином Пиерсом (Benjamin C. Pierce), американским профессором преподавателем компьютерных наук в университете в Пенсильвании. При написании использовался современный объектно-ориентированный язык OCaml. При его создании использовался алгоритм rsync, поэтому в другой каталог передаются только отличия файлов, что экономит трафик. Unison может быть использован в двух вариантах. Первый подобен rsync, то есть создается зеркальная копия исходного каталога. Второй так называемый режим двухсторонней синхронизации, когда изменившие файлы синхронизируются в обоих направлениях. Программа может работать как в клиент-серверном варианте, так и в одиночном режиме. Возможен запуск с командной строки, так и с использованием простого и понятного GUI. Для удобства пользователь создает профили, в которых определяются каталоги для синхронизации, типы файлов которые следует игнорировать и прочие настройки. Профили хранятся в виде обычных текстовых файлов с расширением *.prf в скрытом каталоге
Еще один плюс Unison доступен в версиях для нескольких операционных систем: Linux, *BSD, Mac OS X, Solaris, есть даже пакет для Compaq IPAQ и Sharp Zaurus. Каталоги и файлы синхронизируются как локально, так и используя защищенное SSH соединение. Распространяется по лицензии GNU GPL. В настоящее время активная работа над проектом прекращена, устраняются лишь найденные ошибки, хотя последняя версия датирована январем 2008 года.
Пробуем в работе
Так как Unison это обычная программа, не требующая перекомпиляции ядра установка ее очень проста. Тем более что в большинстве пакетных репозитариев она имеется. В Ubuntu для установки достаточно ввести:
$ sudo apt-get install unison unison-gtk
Как видите графический интерфейс в Ubuntu (и Debian) поставляется в отдельном пакете. Для того чтобы синхронизировать два каталога в командной строке, достаточно ввести команду:
$ unison /home/grinder/source /home/grinder/destination
Учтите, что при синхронизации проверяются (и сохраняются) права доступа. К удаленной Unix системе можно подключиться при помощи SSH использовав такую конструкцию:
$ unison /home/grinder/source ssh://username@remotehostname/dest
Если синхронизируются большие каталоги, то в первый раз некоторые время придется подождать. В процессе работы утилита выводит таблицу в которой показаны изменения между каталогами.
Предлагаемое действие показано стрелочкой < или > в зависимости от того, где найдено отличие, нажав «?» можно получить подсказку по командам. Действие f является рекомендуемым Unison. Например:
Proceed with propagating updates? [] ?
y or g Yes: proceed with updates as selected above
n No: go through selections again
q exit unison without propagating any changes
Для того чтобы разрешить указанные действия выбираем y.
Proceed with propagating updates? [] y
Единственная ситуация с которой не сможет справиться Unison без вашей подсказки это когда изменились оба файла. Такие ситуации помечаются как <-?->. Нажав клавишу «d» можно просмотреть различия выданные командой diff.
changed <-?-> changed file1 [] d
— /home/grinder/dir2/file1 2008-02-23 14:59:18.000000000 +0200
+++ /home/grinder/dir1/file1 2008-02-23 14:59:10.000000000 +0200
Клавиша «х» подскажет дату изменений, чтобы проигнорировать этот файл нажимаем «I». И наконец чтобы объединить изменения нажимаем «m».
changed <-M-> changed file1 [] m
Синхронизиовать два каталога в Linux и Windows можно несколькими способами. Если все действия производятся в Windows, то просто подключаемся по SSH (в Ubuntu необходимо установить пакет openssh, так как SSH сервера в поставке по умолчанию нет). Если наоборот, то мне кажется, что проще смонтировать Windows ресурс. Для удобства прописываем строку для монтирования в файле /etc/fstab:
//win_computer/shared /mnt/win cifs noauto,users,password=,iocharset=utf8,codepage=cp866 0 0
Если для доступа к удаленному каталогу требуется пароль, не забудьте указать его в строке после password= или указывайте вручную при монтировании. Я также использую параметр noauto, чтобы ресурс не монтировался автоматически. Иначе если он не будет доступен при загрузке, это увеличит время. И в iocharset укажите правильную кодировку, чтобы имена файлов на кириллице показывались правильно. Кстати в некоторых случаях Unison не хотел работать с такими файлами, так что привычка обзывать файлы латинскими буквами не будет лишней. Теперь монтируем Windows каталог:
$ sudo mount /mnt/win
И синхронизируем, как два обычных локальных каталога.
Чтобы в процессе команда задавала меньше вопросов, используем параметр -batch или -auto.
Профили
Программа имеет большое количество параметров, просмотреть их можно введя «unison -help«, более подробно они описаны в документации http://www.cis.upenn.edu/
bcpierce/unison/download/releases/stable/unison-manual.html. Чтобы не вводить их каждый раз, удобнее создать профили. Как уже говорилось профиль это обычный текстовый файл. В нем записаны все команды которые необходимо выполнить, причем профили могут ссылаться друг, на друга для чего используется директива include. Поэтому общие для всех параметры лучше определить в одном файле.
$ kate
# команда для объединения конфликтных файлов
merge = diff3 -m CURRENT1 OLD CURRENT2 > NEW
# шаблон для файлов
# журнал никогда не был лишним
# шаблоны файлов которые будут игнорированы
ignore = Name temp.*
Теперь второй профиль, в котором указываем уже каталоги.
# каталоги для синхронизации
include = default default.prf
ignore = Name *mp3
# задает меньше вопросов
Теперь чтобы синхронизировать каталоги, указанные в этом профиле достаточно ввести «unison work«.
Работа с GUI
Большинство пользователей наверное предпочтет все-таки графический интерфейс. Если устанавливался пакет unison-gtk, то в меню К (если KDE) появится нужный пункт.
Из консоли вызвать графическую версию Unison можно использовав параметр -ui.
$ unison -ui graphic или unison-gtk
Если ранее были созданы профили, программа запросит выбрать один из них, иначе вначале необходимо будет создать новый профиль. Для этого указываем исходный (локальный) каталог и второй каталог, в настройках которого можно уже указать удаленное подключение. После создания профиля будут проверены оба каталога, если они не синхронизированы, появится окно с предупреждением о том, что будет сравнено их содержимое. Нажимаем ОК и ждем пока Unison соберет и выведет информацию о каталогах. Стрелка укажет, в каком направлении будет произведена синхронизация. Если будет обнаружен конфликт (например, Unison не может их перезаписать, хотя файлы и изменились или изменились оба файла) такая пара отмечается вопросительным знаком. Для их слияния нажимаем кнопку Merge. Чтобы синхронизировать все одним махом, достаточно нажать кнопку Go. Используя кнопки на передней панели можно указать направление изменения справа-налево (Right to Left) или слева-направо Left to Right.
Что еще?
Unison не единственная, хотя скажу, по моему мнению самая удобная утилита позволяющая синхронизировать каталоги. Такую функцию имеет и файловый менеджер Krusader. Достаточно в нем открыть нужные каталоги в панелях и выбрать в меню пункт Инструменты — Синхронизировать каталоги (Ctrl -Y), появится окно Синхронизация каталогов, в котором можно указать дополнительные функции: задать шаблон имени файла, время последнего доступа или изменения, тип файла, размер, права и другие.
Некоторые типы файлов можно сравнивать и по содержанию. После нажатия на кнопку Сравнить, будет произведен анализ и выдан результат, нажимаем Синхронизировать и каталоги теперь одинаковы.
В моем любимом Midnight Commander нет такой функции, но ее легко можно добавить самостоятельно. Для этого в файл настройки меню этого файлового менеджера пользовательский
/.mc/menu или системный /etc/mc/mc.menu добавляем такую строку:
U unison directories
unison -batch %d %D
Теперь зайдя в MC достаточно нажать F2 и затем клавишу U и каталоги, открытые в противоположных панелях будут без лишних вопросов синхронизированы средствами Unison.
Программа Komparator (http://sourceforge.net/projects/komparator) написана с использованием Qt библиотек. Чтобы ее установить достаточно ввести:
$ sudo apt-get install komparator
Теперь в Правый URL и Левый URL указываем каталоги которые нужно сравнить и нажимаем Искать. Результат после анализа будет показан в трех вкладках в панели внизу: Файлы-дубликаты, Новые файлы и Отсутствующие файлы. Как и в Krusader можно задать шаблон имени, размер, время изменения и другие параметры поиска. Для удобства задаются предустановки, вызвав любой можно быстро сравнить каталог.
Программа Conduit (www.conduit-project.org) построенная на гномьих библиотеках хотя, также предназначена для синхронизации, но ее функция несколько шире. Кроме синхронизации файлов между компьютерами, она позволяет снхронизировать фотографии, электронную почту, данные контактов, заметки, календарь и другую информацию со многими он-лайн сервисами и электронными устройствами (мобильные телефоны, iPod, PDA и другие). При необходимости данные автоматически конфертируются в нужный формат. Список сервисов, о которых знает Conduit довольно приличный: Flickr, Picasa, SmugMug, ShutterFly и другие.
Так как в пользователь Linux не редко использование нескольких браузеров не лишним будет небольшая программа BookmarkBridge (bookmarkbridge.sourceforge.net) позволяющая синхронизировать закладки. В Ubuntu она устанавливается командой «sudo apt-get install bookmarkbridge«.
В репозитарии нашлась еще одна специализированная консольная утилита tra, но по сравнению с Unison она мне показалась не достаточно понятной.