|
|||||||
Синхронизация времени
Время создания: 25.04.2013 22:48
Раздел: root - Linux
Запись: Yurons/mytetra/master/base/1366919304enpulze9o5/text.html на raw.github.com
|
|||||||
|
|||||||
Сетевой сервис синхронизации времени NTP Centos Ubuntu. Служба времени Linux. Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
В Linux существует два понятия времени - аппаратное(время в биосе) и системное(с учетом часового пояса). Аппаратное время можно узнать командой hwclock (запускается от имени суперпользователя), где также показывается отставание аппаратных часов от системных(команда date). [root@centos s]# hwclock Втр 13 Сен 2011 03:48:49 -1.467155 секунд
Но при решении некоторых задач иногда бывает необходимо записать текущее значение аппаратных часов в системные, для этого используется команда hwclock с опцией --systohc, а если нужно сделать наоборот - записать значение системных часов в аппаратные команда запускается с опцией --hctosys. [root@centos s]# hwclock --systohc [root@centos s]# hwclock --hctosys
Если использовать команду date без каких либо опций, то выводится информация в след виде, где вызывают вопрос только 3 буквы - MSD - это летнее время в Москве (наступит осень и будет отображаться MSK). [root@centos s]# date Втр Сен 13 00:00:38 MSD 2011
MSK отличается в + от времени по гринвичу на 3 часа, а MSD на 4 . Установка времени в Linux
Устанавливается время командой date с опцией s, от слова set. [root@centos s]# date -s 19:10 Втр Сен 13 19:10:00 MSD 2011
Но откуда операционная система знает, в каком регионе в мы живем ? По какому времени ходят системные часы ? Реально они идут по гринвичу, а система смотрит на наличие файла /etc/localtime [root@centos s]# file /etc/localtime /etc/localtime: timezone data, version 2, 12 gmt time flags, 12 std time flags,no leap seconds, 129 transition times, 12 abbreviation chars
Запишем в этот файлик данные относящиеся к временной зоне например Нью-Йорка, для чего потребуется выполнить следующую команду: [root@centos s]# cp /usr/share/zoneinfo/America/New_York /etc/localtime cp: переписать «/etc/localtime»? y [root@centos s]# date Втр Сен 13 11:19:37 EDT 2011
*Кстати вводить длинные команды удобнее используя табуляцию (кнопка TAB), начиная вводить начало каждого слова в команде и нажимая TAB система будет автоматом подставлять значение, что значительно сокращает время набора длинных команд и путей.
Меняя содержимое этого файла, мы меняем все значения, отвечающие за вывод времени, но при этом на системное время мы влияния не оказываем, т.к. оно "ходит" по Гринвичу.
Существует два стандарта времени GMT - Greenwich Mean Time - астрономическое (Среднее солнечное) время меридиана, проходящего через прежнее место расположения Гринвичской королевской обсерватории и UTC - всемирное координированное время, в сущности являющиеся одним и тем же. UTC появилось после того как в США возник вопрос "а по какой из 6ти деревень Гринвич, находящихся в разных штатах проходит Гривический мередиан". Чтобы не обижать национальные чувства американцев, было применено понятие UTC =)))))) Автоматическая синхронизация времени по протоколу NTP - Network Time Protocol.
Основной параметр серверов времени - Stratum - уровень сервера, сервера с этим параметром, равным 0 не общаются с клиентами, а позволяют синхронизировать время только других серверов синхронизации с уровенем 1 и ниже.
В Линукс есть программка ntpdate, с помощью которой можно синхронизировать системное время с сервером точного времени, предварительно указав при запуске программы(от roota) [root@centos s]# ntpdate time.nist.gov 12 Sep 16:37:10 ntpdate[7743]: step time server 192.43.244.18 offset -68520.369071 sec
Если повторять синхронизацию постоянно, то все равно будут отклонения в несколько микросекунд.
Можно использовать для этой цели планировщик CRON, где через заданный промежуток времени будет синхронизироваться время, выглядит это следующим образом: [root@centos s]# crontab -e 0 * * * * /usr/sbin/ntpdate сервера NTP
Эта запись значит что каждый час будет запускаться синхронизация с сервером времени.(0.00 1.00 2.00 и тд)
Но можно все сделать гораздо удобнее, установив программу NTP [root@centos s]# yum install ntp - для Centos $ sudo apt-get install ntp - для UBUNTU Теперь настроим программу NTP.
Файл конфигурации:
/etc/ntp.conf
server ntp.ubuntu.com
server time.nist.gov
server europe.pool.ntp.org
Разрешение доступа из локальной сети:
По умолчанию ваш сервер NTP будет доступен всем хостам в Интернет. Параметр restrict в
файле /etc/ntp.conf позволяет вам контролировать, какие машины могут обращаться к вашему
серверу.
Если вы хотите запретить всем машинам обращаться к вашему серверу NTP, добавьте
следующую строку в файл /etc/ntp.conf:
restrict default ignore
Если вы хотите разрешить синхронизировать свои часы с вашим сервером только машинам в
вашей сети, но запретить им настраивать сервер или быть равноправными участниками
синхронизации времени, то вместо указанной добавьте строчку
restrict 10.0.0.0 mask 255.0.0.0 nomodify notrap
/etc/ntp.conf может содержать несколько директив restrict
restrict 10.0.0.0 mask 255.0.0.0 noquery
Логисервера:
/var/log/ntpstats/
Проверка запросов:
ntpq –p
Запуск сервера:
/etc/init.d/ntpd start или service ntpd start - для CentOS
/etc/init.d/ntp start или service ntp start - для Ubuntu.
* Опять же вводя команду узнать имя демона(ntp или ntpd) можно нажав кнопку TAB начав набирать имя сервиса. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|