В любой операционной системе, на любом компьютере нельзя обойтись без использования точного времени и даты. Особенно это важно системным администраторам, ведь все логи событий упорядочены именно по дате и времени.
Чтобы просмотреть время в Linux достаточно набрать команду:
date
После чего нам будет показаны текущий день недели, месяц, время и год.
Сбт Фев 13 02:09:28 EET 2010
Установить вручную дату и время можно с помощью этой же команды –
date MMDDhhmm
Где MM – месяц, DD – день, hh – час, mm – минуты.
Т.Е. чтобы задать к примеру 10 января 10 часов 15 минут, нужно ввести следующее:
Date 01101015
Более подробно о команде date, можно почитать в мануале
man date
Помимо вывода и редактирования времени date может и многое другое, к примеру набрав такую команду:
date –date="sunday next 2 week
Мы узнаем на какое число попадет у нас воскресенье через две недели.
Можно также узнавать дату ближайшего наступающего дня неделеи, к примеру
date –date="friday" +%F
Покажет нам дату ближайшей пятницы.
Команда:
date –date="last friday" +%F
Покажет нам число прошедшей пятницы.
Конечно же, удобно просматривать дату и время, а также рассчитывать ближайшие или прошедшие дни, но как нам быть если мы хотим увидеть полноценный календарь? И на этот случай в Linux все предусмотрено!
Для этого существует команда – cal
Набрав которую вы получите календарь на текущий месяц.
Нужен календарь на год? Пожалуйста –
cal 2010
cal -3
Итак, мы разобрались с командами date и cal, научились просматривать и устанавливать дату и время, но что делать если время у нас начинает спешить или отставать? Не вводить же вручную поправки. Да и поднимаем мы с вами не рабочую станцию, а сервер, который будет обслуживать всю нашу сеть, и мы хотим, чтобы все компьютеры нашей сети синхронизировали время с нашего сервера. Для этих целей используется сервер NTP.
Network Time Protocol (NTP) — сетевой протокол для синхронизации внутренних часов компьютера с использованием сетей с переменной латентностью.
NTP использует для своей работы протокол UDP. Система NTP чрезвычайно устойчива к изменениям латентности среды передачи.
NTP использует алгоритм Марзулло (предложен Кейтом Марзулло (Keith Marzullo) из Университета Калифорнии, Сан-Диего), включая такую особенность, как учёт времени передачи. В версии 4 способен достигать точности 10 мс (1/100 с) при работе через Интернет, и до 0.2 мс (1/5000 с) и лучше внутри локальных сетей.
NTP — один из старейших используемых протоколов. NTP разработан Дэвидом Л. Миллсом (David L. Mills) из университета Дэлавера и в настоящее время продолжает совершенствование. Текущая версия — NTP 4.
Чтобы установить в CentOS NTP воспользуемся yum.
yum install ntp
После чего синхронизируем время с серверами времени в интернет
ntpdate pool.ntp.org Затем нам нужно выставить аппаратные часы BIOS, равными времени по Гринвичу (UTC).
hwclock --systohc --utc
Для того чтобы наша система не показывала время выставленное в BIOS (если конечно вы не живете на нулевом меридиане) в файле
/etc/sysconfig/clock
Должно быть следующее
ZONE="Europe/Kiev" UTC=true ARC=false Где ZONE = ваш текущий часовой пояс. Чтобы наш демон ntp понимался при следующих загрузках набираем и вводим: chkconfig --level 2345 ntpd on
Либо входим в меню при помощи
setup
и в системных службах ставим звездочку напротив ntpd.
Запускаем вручную наш демон
service ntpd start
Вот и вся несложная процедура установки ntp завершена. Проверяем синхронизируется ли наш сервер с серверами времени.
В появившейся таблице мы видим сервера с которыми синхронизирован наш ntpd.
remote
Имя удаленного NTP-сервера.
refid
Указывает, откуда каждый сервер получает время в данный момент.
st
Stratum это число от 1 до 16, указывающее на точность
сервера. Единица означает максимальную точность, 16 — сервер
недоступен. Уровень вашего сервера будет равен уровню наименее точного
удаленного сервера плюс 1.
poll
Интервал между опросами (в секундах). Значение будет изменяться
между минимальной и максимальной частотой опросов. В начале
интервал будет небольшим, чтобы синхронизация происходила
быстро. После того как часы синхронизируются, интервал начинает
увеличиваться, чтобы уменьшить трафик и нагрузку на популярные
сервера времени.
reach
Восьмеричное представление массива из 8 бит, отражающего
результаты последних восьми попыток соединения с сервером. Бит
выставлен, если удаленный сервер ответил.
delay
Количество времени (в секундах) необходимого для получения
ответа на запрос "который час? ".
offset
Наиболее важное поле. Разница между временем локального и
удаленного серверов. В ходе синхронизации это значение должно
понижаться, указывая на то, что часы локальной машины идут все
точнее.
jitter
Дисперсия (Jitter) — это мера статистических отклонений от
значения смещения (поле offset) по нескольким успешным парам
запрос-ответ. Меньшее значение дисперсии предпочтительнее,
поскольку позволяет точнее синхронизировать время.
Значение знаков перед именами серверов
– Означает, что локальный сервис NTP не предпочитает этот сервер
+ Означает, что локальный сервис NTP предпочитает этот сервер
x Отмечает плохой хост
* Указывает на текущий наиболее предпочтительный сервер
Вот и все,- про поправки времени вручную, на нашем сервере, можно забыть, так как все будет автоматизировано. На рабочих станциях вашей сети нужно указать ip адрес вашего сервера времени, и на этом все работы у нас завершены. Можно смело идти за пивом.
Источник