Меню Рубрики

Установка даты и время centos

Установка времени и даты в Centos, за минуту

Установка времени и даты в Centos, за минуту

Добрый день уважаемые читатели и гости блога pyatilistnik.org, продолжаем изучать админские операционные системы, в частности CentOS. В прошлый раз мы ее установили и подробнейшим образом познакомились с ее файловой структурой и общими элементами управления. Азы изучены, двигаемся к реальной практике, очень часто бывает ситуация, что в момент установки вы не правильно указали дату или время, либо ваши системные часы отстают получая не правильное время с NTP сервера, вот в таких моментах вам может потребоваться умение устанавливать, менять дату и время на CentOS 7.

На что влияет время в CentOS 7

Я хочу до вас донести, для чего нужно иметь всегда актуальное время на сервере.

  • Представить будни системного администратора без аварий, просто не возможно. Это у руководства компаний в мозгу все хорошо и все должно работать 365 дней в году, без отпуска и обеда :), но в реальности желез может сломать, может произойти хакерская атака или глюк операционной системы. Все эти инциденты, всегда оставляют в CentOS 7 системные события или просто логи и вот, чтобы их правильно идентифицировать (момент срабатывания) вы обязаны иметь корректную дату и время в системе. Я много раз в своей практике встречал моменты, когда системные администраторы, на сетевом оборудовании или некоторых серверах, оставляли стандартные, заводские настройки, которые изначально имели не тот часовой пояс, после чего когда нужно было изучать логи, они садились в лужи, так как видели кривую дату.
  • Если у вас CentOS является членом домена Active Directory, то там могут быть проблемы. Простой пример у вас есть файловый сервер на CentOS, если разница на нем и на контроллере домена более 5 минут, то люди не смогут получать доступ к своим папкам, так как будут проблемы с аутентификацией по протоколу Kerberos.
  • Еще одна большая беда, это запланированные задачи в планировщике cron.

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

Если вы сами устанавливали сервер с CentOS 7, то в мастере инсталляции вы должны били видеть пункт «Дата и время или Date $ Time»

В данном пункте вы можете настроить:

По умолчанию, все данные будут браться из BIOS компьютера, очень часто системные администраторы этот этап пропускают или ошибаются в настройке, встречал я еще интересные случаи, когда сервера заказывались в аренду за рубежом и там система была предустановлена, и естественно там была другая дата, часовой пояс и время. Так, что учимся все это исправлять.

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

Первый раз попав на сервер, я вам советую выработать привычку вводить команду timedatectl. Обратите внимание, что тут есть все данные о времени, дате с учетом часового пояса и без него, сам часовой пояс, в моем примере это GMT, показан NTP сервер, статус синхронизации.

Теперь у вас на выбор два метода, утилитой date или timedatectl.

Установка даты с помощью date

  • Sat — это день недели, в моем случае суббота
  • Nov — месяц ноябрь
  • 11 — число
  • 22:06:25 — часы, минуты и секунды
  • GMT 2017 — год

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

Я например, хочу дату 04 июня 10:00 2017

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

Читайте также:  Установка плагин на кубейс 5

Установка даты с помощью timedatectl

Тут все так же просто, есть синтаксис timedatectl set-time ‘YYYY-MM-DD HH:MM:SS’

  • YYYY — год
  • MM — месяц
  • DD — число
  • HH:MM:SS — часы, минуты, секунды.

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

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

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

  1. Через утилиту timedatectl
  2. Через утилиту tzdata

Утилита timedatectl

Что хорошо, ее можно сразу использовать из коробки. И так как помните у меня часовой пояс GMT это +0, я хочу изменить на Москву, это +3. Для начала посмотрим доступный список часовых поясов в Centos, делается это ключомlist-timezones.

Список будет огромный, поэтому сделаем фильтрацию по европе.

Нахожу тут Europe / Moscow, то что мне и нужно.

Далее его задаем, командой;

Как видите, все прекрасно поменялось.

Утилита tzdata

В CentOS 7, все настройки о часовых поясах, хранятся файле /etc/localtime и способ с использованием утилиты tzdata, заключается в том, чтобы его подменить на нужный.

Делаем резервную копию файла localtime, командой:

Устанавливаем пакет tzdata

Посмотрим список часовых поясов в папке /usr/share/zoneinfo/

Теперь, когда основной файл localtime мы переименовали, можем за место него сделать символическую ссылку из папки /usr/share/zoneinfo/.

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

источник

✔ CentOS 7: Настройка даты и времени, пояса, автоматическая синхронизация мирового времени (Network Time Protocol).

Опубликовано 2020-01-13 · Обновлено 2020-03-22

Содержание:

Основная часть этой статьи была взята с очень уважаемого мною сайта serveradmin.ru . Если вам понравилась данная статья, то перейдите на сайт её автора — serveradmin.ru , и поддержите автора финансово или информационной поддержкой! Ему будет очень приятно или полезно!

1. Настройка аппаратного (системного) времени.

Чтобы проверить аппаратное время в CentOS 7 используется утилита hwclock:

  • hwclock —localtime — проверка аппаратного времени без поправки.
  • hwclock —utc — проверка времени с условием, что аппаратные часы идут по времени UTC.

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

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

# hwclock —set —date «27 Nov 2019 17:30»

2. Ручная настройка времени.

В CentOS 7 за программное время отвечает утилита date или timedatectl .

Если вызывать утилиту date без параметров, она покажет текущее время на сервере:

Внимание! Если вы хотите установить конкретное время и дату вручную, вы можете воспользоваться утилитой date , но перед этим нужно отключить демон chronyd !

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

Узнать какие часовые пояса действуют на территории России можно из этой статьи «CentOS 7: Временные зоны России в PHP».

Теперь проверим статус службы по обновлению времени через интернет. Для этого можно использовать указанную выше команду timedatectl без параметров.

Утилита timedatectl также позволяет изменить время:

# timedatectl set-time ‘2019-11-27 17:51:00’

3. Настройка часового пояса.

Чтобы время на сервере CentOS 7 соответствовало вашему часовому поясу, его можно изменить вручную.

Для этого есть две утилиты:

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

# timedatectl set-timezone Asia/Yekaterinburg

По факту, эта утилита меняет символьную ссылку.

Или же можно использовать tzdata . Чтобы воспользоваться данным методом, нужно заменить файл /etc/localtime на нужный вам. Весь список часовых поясов, расположен в директории /usr/share/zoneinfo/ .

Читайте также:  Установка погружных диафрагменных насосов

Заменим часовой пояс на Asia/Yekaterinburg :

Делаем бэкап файла localtime :

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

Рассказываю, чтобы вы понимали, как реально меняется часовой пояс.

# ln -s /usr/share/zoneinfo/Asia/Yekaterinburg /etc/localtime

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

4. Настройка синхронизация времени по Network Time Protocol.

Вы можете настроить автоматическую синхронизацию времени на вашем сервере с внешним NTP (Network Time Protocol) сервером. Для этого нужно установить сервис ntp.

После установки, нужно запустить сервис ntpd и добавить его в автозагрузку:

# systemctl start ntpd.service
# systemctl enable ntpd.service

Проверить, что сервис запущен можно так:

В файле /etc/ntp.conf нужно указать сервера, с которыми нужно синхронизировать время:

Синхронизация времени выполняется последовательно. Если недоступен первый NTP сервер, идет обращение ко второму и так далее.

Можно вручную синхронизировать время с указанным NTP сервером командой:

По умолчанию, ntpd включает в системе режим ‘ 11 minute mode ‘, то есть время будет синхронизироваться каждые 11 минут. Если вы не можете использовать демон ntpd, вы можете настроить синхронизацию времени по Cron, добавьте в Cron следующую команду:

5. Протокол сетевого времени: Network Time Protocol.

Chrony — это гибкая реализация протокола сетевого времени — Network Time Protocol (NTP). Используется для синхронизации системных часов с различных NTP-серверов, эталонных часов или с помощью ручного ввода.

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

Chrony поставляется с двумя программами:

  • chronyc — интерфейс командной строки для службы Chrony;
  • chronyd — служба, которая может быть запущена во время загрузки системы.

5.1. Установка программы.

Для CentOS 8 из официальных репозиториев убрали ntp и ntpdate, поэтому для синхронизации времени нужно использовать chrony.

Основные преимущества chrony:

  • высокая скорость и точность синхронизации;
  • корректная работа при отсутствии доступа к эталонным часам (ntpd требуются регулярные запросы);
  • по умолчанию не меняет сразу время при синхронизации, чтобы не нарушить работу программ.

По умолчанию, утилита chrony уже установлена в системе, но если по какой-то причина у вас ее нет, выполните установку:

Если у вас она не стоит, что видно по скриншоту, то установим и настроим вручную:

Как и любой другой сервис, после установки chrony нужно включить и добавить в автозагрузку:

# systemctl start chronyd
# systemctl enable chronyd

5.2. Проверка работы программы.

Для проверки статуса chrony используется следующая команда.

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

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

5.3. Проверка синхронизации.

Чтобы проверить, синхронизирован ли chrony на самом деле. Как и у ntp, у chrony есть интерфейс командной строки chronyc. Мы будем использовать его программу командной строки chronyc, которая имеет опцию отслеживания для предоставления соответствующей информации.

Перечисленные пункты содержат следующую информацию:

  • Reference ID — идентификатор и имя, с которым компьютер в настоящее время синхронизирован.
  • Stratum — количество переходов к компьютеру с установленными основными часами.
  • Ref time — это время по Гринвичу, в которое было выполнено последнее измерение из эталонного источника.
  • System time — задержка системных часов от синхронизированного сервера.
  • Last offset — расчетное смещение последнего обновления часов.
  • RMS offset — долгосрочное среднее арифметическое значения смещения.
  • Frequency — это частота, на которой часы системы будут работать неправильно, если хронограф не проведет коррекцию. Она выражена в ppm, то есть ч/м (частей на миллион).
  • Residual freq — остаточная частота указывает на разницу между измерениями от опорного источника и используемой в настоящее время частотой.
  • Skew — расчетная погрешность, связанная с погрешностью частоты.
  • Root delay — суммарная задержка сетевого пути к опорному серверу, с которым синхронизируется компьютер.
  • Leap status — это статус, который может иметь одно из следующих значений: нормальное, добавить второй, удалить второй или не синхронизироваться.
Читайте также:  Установка биксеноновых модулей линзы hella

5.4. Источники синхронизации.

Чтобы проверить информацию об источниках chrony, можно выполнить следующую команду:

5.5. Настройка параметров.

Конфигурационный файл chrony — /etc/chrony.conf . В нем нужно указать список NTP серверов, которые нужно использовать для синхронизации.

Конфигурационный файл chrony находится по адресу /etc/chrony.conf .

Пример конфигурационного файла может выглядеть примерно так:

Приведенная выше конфигурация содержит следующую информацию:

  • server — данная директива описывает NTP-сервер, с которым необходимо синхронизироваться.
  • stratumweight — какую задержку следует добавить к источнику синхронизации для каждой группы. Значение по умолчанию: 0,0001.
  • driftfile — расположение и имя файла, содержащего данные смещения.
  • makestep — эта директива заставляет chrony постепенно корректировать любое смещение во времени путем снижения скорости или замедления хода часов по мере необходимости.
  • logdir — путь к файлу журнала chrony.

Если нужно немедленно перейти к настройке системных часов и игнорировать текущие настройки, воспользуйтесь следующей командой:

5.6. Остановка работы программы.

Остановить работу сервиса можно вот такой обычной командой:

Убрать из автозапуска этой командой:

6. Возможные ошибки и их устранение.

6.1. Проблема с Local/RTC временем.

Необходимо, что бы Local/RTC время было одинаковым.

При выводе результатов работы команд, к результату постоянно приписывается абзац:

Внимание: система настроена на считывание времени RTC в локальном часовом поясе. Этот режим не может быть полностью поддержан. Это создаст различные проблемы с изменением часового пояса и переходом на летнее время. Время RTC никогда не обновляется, оно полагается на внешние средства для его поддержания.

Если оффлайн часы сильно убегают значит не выставлен машинный таймер. Будем чинить!

Переключимся на сохранение локального, а не глобального (UTC) времени в BIOS.

# timedatectl set-local-rtc 1

потом обновляем машинный таймер:

И будет всё точно как швейцарские часы!

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

Как видно предупреждение исчезло!

6.2. Ошибка ручной синхронизации времени (ntpdate).

При ручной синхронизации времени:

у вас может возникнуть подобная ошибка:

Она означает, что у вас запущен ntpd, который блокирует ручную синхронизация времени. Чтобы выполнить ручную синхронизацию, остановите ntpd:

И запустите синхронизацию ntpdate заново:

6.3. Ошибка ручной синхронизации времени (timedatectl).

Аналогичная ошибка может возникать и при работе с утилитой timedatectl :

# timedatectl set-time ‘2019-11-27 17:51:00’

Теперь нужно отключить автоматическую синхронизацию в самой утилите timedatectl :

И выполнить команду по установке конкретного времени:

# timedatectl set-time ‘2019-11-27 17:51:00’

6.4. Ошибка ручной синхронизации времени при работе с часовыми поясами.

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

Для того, чтобы в системе были доступны часовые пояса, установите утилиту tzdata:

6.5. Ошибка: Operation not permitted.

Так при ручной синхронизации, часто бывают ошибки вида:

28 Nov 10:12:39 ntpdate[897482]: sendto(185.217.191.98): Operation not permitted

В этом случае проверьте правила firewalld или iptables, и убедитесь, что у вас на сервере открыт UDP порт 123. Так же некоторые хосты синхронизации могут быть недоступны в момент проверки.

источник

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

Adblock
detector