Home » Linux » CentOS » Как установить, изменить время и часовой пояс в CentOS 7

Как установить, изменить время и часовой пояс в CentOS 7

Для нормального функционирования сервера требуется корректно настроить текущее время и его своевременное обновление с определенной периодичностью. Как правильно произвести смену часового пояса в centos в случае его изменения или неверного указания во время установки – одна из тем этой статьи. Также я затрону вопрос установки и использования утилиты разовой синхронизации времени ntpdate и настройки сервиса точного времени ntp.

Время на сервере CentOS 7

Во время установки CentOS вам обязательно предлагается настроить текущее время, указать временную зону, в которой находится машина. По-умолчанию инсталлятор берет время из bios и предлагает его откорректировать. Кто-то во время установки не придал этому значение и не откорректировал часы, кто-то ошибся в выборе часового пояса. Так же популярна ситуация, когда сервер арендуется заграницей, там уже предустановлена система и ее настройки времени и часового пояса не соответствуют необходимым. Все это можно исправить после установки, я подробно обо всем расскажу. Но начнем с самого простого.

Почему важно, чтобы в системе было правильное время? Причин может быть несколько:

  • Для корректного логирования событий той или иной службы. Например, у вас в сети случился какой-то инцидент и вы его расследуете. Удобно, когда время на всех машинах сети одинаковое, это упрощает проверку и сопоставление различных действий.
  • Могут возникнуть проблемы с работой в доменной среде windows, если у вас существенно различаются данные системных часов. Это актуально, если у вас файловый сервер centos интегрирован в доменную сеть windows. Пользователь в определенный момент не сможет получить доступ к файлам, если время сервера превысит допустимое отклонение от контроллера домена (более 5 минут). Это связано с особенностью работы протокола аутентификации Kerberos.
  • На вашем сервере может располагаться web хостинг с сайтами, в которых указано время публикации материала. Если часы сервера не будут совпадать с временной зоной основной аудитории, то могут возникать курьезные моменты, когда посетители увидят статьи, опубликованные в будущем. Так же некорректно будет работать статистика, основанная на анализе логов apache или nginx.
  • Вы используете планировщик cron в своей работе. Для корректной и предсказуемой работы запланированных событий дата и часовой пояс на сервере должны быть настроены правильно.

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

Установка и настройка времени в CentOS 7

Первым делом проверим текущую дату и время на сервере с помощью команды date:

# date
Mon Aug 10 17:40:05 MSK 2015
Monдень недели, в данном случае понедельник
Aug 10месяц август, 10-е число
17:40:05текущее время часы:минуты:секунды
MSKчасовой пояс
2015текущий год

Чтобы вручную настроить правильное время, нужно воспользоваться командой с дополнительными параметрами:

# date MMDDhhmm

Здесь MM — месяц, DD — число, hh — час, mm — минуты. Таким образом, чтобы изменить дату на 9 августа, 16:45, выполняем в консоли:

# date 08091645
Sun Aug  9 16:45:00 MSK 2015

Чтобы узнать текущее время без учета часового пояса, то есть время по UTC, можно воспользоваться следующим ключом команды date:

# date --utc
Mon Aug 10 15:03:14 UTC 2015

В выводе видим время относительно нулевого меридиана, без поправок на часовой пояс. После установки корректного времени переходим к настройке часового пояса.

Установка и настройка часового пояса в CentOS 7

Как уже было показано раньше, чтобы узнать в каком часовом поясе находятся системные часы сервера centos, необходимо воспользоваться командой date. В нашем случае timezone указана как MSK. Это общепризнанное сокращение для часовой зоны Московское время (Moscow Time). Если у вас указан другой часовой пояс, а вы хотите установить московскую временную зону, то вам нужно выполнить следующие процедуры:

Обновить системный список часовых поясов tzdata с помощью yum:

# yum -y install tzdata

Сделать резервную копию текущей timezone:

# mv /etc/localtime /etc/localtime.bak

Найти в каталоге /usr/share/zoneinfo/ необходимую временную зону. В нашем случае это файл Moscow в папке Europe.
centos timezone
Установить символьную ссылку на указанный файл timezone:

# ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Все, часовой пояс успешно изменен. После установки времени и часового пояса можно переходить к настройке синхронизации часов.

Синхронизация времени с помощью ntpdate

Способов синхронизации времени в centos существует как минимум два:

  • ручной с помощью утилиты ntpdate
  • автоматический при помощи сервиса ntp

Рассмотрим сначала вариант ручной однократной синхронизации при помощи программы ntpdate. Она позволяет разово синхронизировать локальное время с эталонным сервером времени в интернете. Подобных эталонов существует великое множество. Мы для примера воспользуемся одним из них — pool.ntp.org

Запускаем синхронизацию времени:

# ntpdate pool.ntp.org
10 Aug 19:27:34 ntpdate[24141]: step time server 83.143.51.50 offset 48.649431 sec

Утилита провела синхронизацию, в результате которой к моему системному времени было добавлено 48.6 секунд для приближения к эталонному. Если в результате работы синхронизации вы получаете ошибку: no server suitable for synchronization found то попробуйте в работе утилиты использовать непривилегированный порт. По-умолчанию ntpdate работает по 123 порту. Если он закрыт на фаерволе, то помочь в синхронизации поможет следующий параметр:

# ntpdate -u pool.ntp.org

Если у вас запуск ntpdate завершается ошибкой — the NTP socket is in use, exiting, значит у вас уже установлена и запущена служба ntpd, которая заняла необходимый udp порт, необходимый для работы ntpdate. Установкой и настройкой этой службы мы и займемся далее.

Настройка сервера ntp в CentOS 7

Сервер времени ntp использует в своей работе одноименный протокол — Network Time Protocol, которому для работы необходим UDP порт 123. Так что перед установкой и настройкой службы времени убедитесь, что на фаерволе открыт этот порт.

Устанавливаем сервер ntp:

# yum -y install ntp

Теперь отредактируем файл конфигурации /etc/ntp.conf , удалив все лишнее:

# cat /etc/ntp.conf

driftfile /var/lib/ntp/drift
restrict default nomodify notrap nopeer noquery
restrict 127.0.0.1
restrict ::1

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst

disable monitor
logfile /var/log/ntp.log
ПараметрОписание
serverСписок серверов для синхронизации времени
driftfileЗадает адрес файла, в котором хранится история изменений времени во время синхронизации. Если по каким-то причинам синхронизация времени с внешними источниками станет невозможна, служба времени изменит системные часы в соответствии с записями в этом файле.
restrict 127.0.0.1Указывает, что пользоваться нашим сервером времени можно только непосредственно с локального интерфейса. Если вам необходимо разрешить другим компьютерам в вашей локальной сети синхронизировать время с текущей машины, то укажите в данном параметре адрес вашей сети, например:

restrict  192.168.10.0 mask 255.255.255.0
restrict default nomodify notrap nopeer noqueryПараметры указывают на то, что клиентам данного сервиса времени запрещено изменять его настройки, получать его статус. Они могут только забрать с него значения точного времени.
disable monitorДанный параметр повышает безопасность, предотвращая использования одной из уязвимостей сервиса ntpd, которую можно использовать для проведения DDoS атак.
logfileУказывает путь к файлу с логами сервиса

После завершения редактирования файла настроек запускаем службу синхронизации времени:

# systemctl start ntpd

Проверяем запустился ли сервер:

# netstat -tulnp | grep 123

настройка ntp centos

Все в порядке, служба слушает положенный порт 123. Проверим еще на всякий случай системные логи centos:

# cat /var/log/messages | grep ntpd

centos ntp server

# cat /var/log/ntp.log

настройка ntpd centos

Все в порядке, сервер запущен и полностью готов к работе.

Теперь настроим автозапуск ntp вместе с загрузкой centos:

# systemctl enable ntpd

Наблюдать за работой службы ntp можно с помощью команды ntpq -p:

настройка ntp сервера

Что значат все эти данные:

remoteАдрес удаленного эталона времени, с которого была синхронизация
refidУказывает, откуда каждый эталон получает точное время. Это могут быть другие сервера времени, система GPS и другое
stStratum (уровень) это число от 1 до 16, которое указывает на точность эталона. 1- максимальная точность, 16 — сервер недоступен. Уровень вашего сервера будет равен уровню наименее точного удаленного эталона плюс 1.
pollИнтервал в секундах между опросами
reachВосьмеричное представление массива из 8 бит, отражающего результаты последних восьми попыток соединения с эталоном. Бит выставлен, если удаленный сервер ответил.
delayВремя задержки ответа на запрос о точном времени
offsetРазница между вашим и удаленным сервером
jitterДисперсия (Jitter) — это мера статистических отклонений от значения смещения (поле offset) по нескольким успешным парам запрос-ответ. Чем меньше значение дисперсии, тем лучше, поскольку позволяет точнее синхронизировать время.

Подведем итог опубликованного материала. Мы рассмотрели практически все, что связано со временем на сервере CentOS. Да и не только на нем, вся информация в статье актуальна практически для любого Linux дистрибутива. Мы научились устанавливать время, изменять часовой пояс, синхронизировать время с помощью ntpdate и настраивать сервер времени ntpd в локальной сети.

Помогла статья? Есть возможность отблагодарить автора

Дополнительные материалы по CentOS

Рекомендую полезные материалы по CentOS:
Настройки системы
  • Установка
  • Базовая настройка
  • Настройка времени
  • Настройка сети
  • Настройка репозиториев
  • Настройка iptables
Установка CentOS 7 в конфигурации minimal или netinstall с загрузочной флешки или по сети на диск или raid раздел.
Базовая настройка CentOS 7 для работы с любым функционалом. Приведены практические советы по улучшению безопасности и удобства администрирования.
Как установить точное время на сервере CentOS, настроить часовой пояс, синхронизировать время с помощью ntpdate и ntpd и другое.
Подробное описание настройки сети в CentOS 7 - задать ip адрес, dhcp, отключить ipv6, dns, hostname, статические маршруты и др.
Установка репозиториев epel, rpmforge и др. Добавление, удаление, обновление rpm репозиториев в CentOS.
Рассмотрены основные моменты настройки iptables в Centos 7 - установка, добавление правил, проброс портов, nat, логирование и д.р.
Настройка программных комплексов
 
  • Прокси сервер
  • Шлюз
  • Asterisk
  • Asterisk+Freepbx
  • Сервер VPN
  • Web сервер Apache
  • Web сервер Nginx
  • Почтовый сервер
Подробное описание настройки прокси сервера на базе CentOS 7 со связкой squid+AD+sams2, реализован запрет доступа по url и группам пользователей.
Простая и быстрая настройка шлюза на базе CentOS 7 для организации доступа в интернет из локальной сети.
Описание установки и настройки asterisk - популярной современной sip атс. Описан расширенный функционал, покрывающий большинство потребностей стандартного офиса в современной телефонии.
Подробное описание установки voip сервера asterisk и панели управления freepbx на CentOS 7.
Установка и настройка OpenVPN сервера на CentOS для объединения офисов и подключения удаленных пользователей
Настройка web сервера CentOS 7 на базе связки http сервера apache, php и сервера db mysql, или коротко - установка lamp.
Установка и настройка высокопроизводительного web сервера на базе nginx и php fpm. В качестве кэша используется APC.

Описание установки и настройки почтового сервера iRedMail на основе готовой сборки на CentOS 7. Обзор основных возможностей и рекомендации по настройке.

Самостоятельная настройки почтового сервера postfix + dovecot а так же дополнительных полезных модулей для полноценной и удобной работы почты.

Размышления на тему выбора почтового сервера для малых и средних компаний.

Настройка отдельных программ
 
  • Zabbix
  • Phpmyadmin
  • Webmin
  • Ruby
  • Обновление php
  • Vsftpd
  • Bind
  • Unison
  • Observium
  • Syslog-NG
Видео и подробное описание установки и настройки Zabbix 3.2, а также установка агентов на linux и windows и подключение их к мониторингу.
Подробное описание установки и настройки панели управления phpmyadmin на веб сервер apache и nginx под управлением Centos 7.
Подробное описание установки и настройки Webmin на CentOS 7 для удаленного подключения и управления сервером.
Подробное описание установки языка Ruby последней версии на веб сервер под управлением CentOS 7.
Подробное описание установки или обновления php 7 на CentOS 7. Рассмотрен вариант отката обновления и возврата на php 5.6 или 5.4.
Подробное описание с видео установки и настройки ftp сервера vsftpd, примеры с локальными и виртуальные пользователями в mysql.
Настройка DNS сервера BIND (Named) в CentOS 7. Рассмотрены наиболее популярные конфигурации, в том числе подробное логирование.
Установка Unison в CentOS 7 для двухсторонней синхронизации файлов.
Инструкция по установке и настройке сервера мониторинга Observium на CentOS 7. В качестве примера в конце добавлено одно устройство для мониторинга.
Настройка сервера для централизованного сбора логов с удаленных устройств и серверов с помощью программы syslog-ng.
Разное
  • Настройка ssl в Apache
  • Бэкап с помощью rsync
Настройка работы веб сервера apache с виртуальными хостами по протоколу https с использованием бесплатного ssl сертификата.
Подробное описание настройки бэкапа с помощью rsync на примере скрипта инкрементного архива на системе Centos, Debian, Ubuntu, Windows.

10 комментариев

  1. Спасибо за статью.
    Подскажите, пожалуйста, почему после перезагрузи ОС ntp может не стартовать?
    Команду systemctl enable ntpd выполнил.

    • Zerox

      Не знаю, логи надо смотреть. Можно настроить логирование ntp. Я ни разу с подобным не сталкивался. Может с сетью что-то не так, ntp все время ругается на проблемы с сетевыми интерфейсами.

      • Разобрался. Дело в том что CentOS7 для синхронизации времени по умолчанию использует сервис chrony. ntpd не будет стартовать автоматически пока не отключишь chrony.
        Что бы отключить chrony нужно выполнить команду: systemctl disable chronyd.service
        А вообще chrony по функциям очень сильно напоминае ntpd.

  2. в 7ке есть специальная утилита для изменения зоны

    timedatectl set-timezone Europe/Moscow

    не используйте ntp, также в 7ке есть chrony

    • Zerox

      Спасибо за информацию. У меня учтены эти замечания в статье про базовую настройку:
      https://serveradmin.ru/centos-7-nastroyka-servera
      Эта статья писалась гораздо раньше, уже не стал переделывать, потому что по сути не имеет принципиального значения.

  3. Здравствуйте. Спасибо Вам. Сайт на Друпал 7. (мой уровень -очень начинающий). Ошибка вроде понятна мне. И вообще место на вдс закончилось. Буду пробовать с SCP как-то решить. Скопировать /opt (os Centtos 7) Потом удалить содержимое. Там 1.5 гб. Если получится и скопировать и удалить. Мало ли что.

  4. Александр

    Спасибо. Все подробно и доступно.

  5. В Centos 7 уже

    timedatectl set-timezone UTC

    работает

  6. Добрый день,
    Чтобы избежать проблем с расхождением времени с виндой, я воспользовался командой.
    ln -sf /usr/share/zoneinfo/UTC/etc/localtime

Добавить комментарий

Ваш e-mail не будет опубликован.

Нажимая кнопку "Отправить комментарий" Я даю согласие на обработку персональных данных.