- LFCA: научитесь управлять временем и датой в Linux — часть 6
- Проверка времени и даты в системе Linux
- Как установить часовой пояс в системе Linux
- Установите дату и время в системе Linux
- Установите автоматическую синхронизацию времени с помощью NTP-сервера
- Как узнать в Linux время на сервере?
- Какое время бывает в Linux?
- Узнать время на сервере в Linux Ubuntu
- Как узнать время через консоль Linux?
- Как настроить время на сервере Linux чрез hwclock?
- Настройка сервера времени ntp в Linux
LFCA: научитесь управлять временем и датой в Linux — часть 6
Эта статья является Частью 6 серии LFCA. Здесь, в этой части, вы познакомитесь с общими командами системного администрирования для управления настройками времени и даты в системе Linux.
Время имеет решающее значение в любой системе Linux. Несколько служб, таких как crontab, anacron, службы резервного копирования и восстановления, зависят от точного времени для выполнения своих задач, как и ожидалось.
В Linux есть 2 типа часов:
- Аппаратные часы. Это часы с питанием от батареи, также называемые часами CMOS или RTC (Часы реального времени). Часы работают независимо от операционной системы и продолжают работать, даже когда система выключена, при условии наличия батареи CMOS.
- Системные часы ( Программные часы ) — также называются часами ядра. Во время загрузки системные часы инициализируются аппаратными часами и вступают в силу с них.
Обычно существует разница во времени между двумя часами, так что они постепенно отклоняются друг от друга. Мы вернемся к этому позже и покажем вам, как вы можете синхронизировать эти часы.
А пока мы посмотрим, как вы можете проверить время и дату в системе Linux.
Проверка времени и даты в системе Linux
Есть две основные утилиты, используемые для проверки времени и даты в системе Linux. Первая — это команда даты. Без каких-либо аргументов он предоставляет довольно мало информации, показанной
$ date Friday 26 March 2021 11:15:39 AM IST
Чтобы просмотреть дату только в формате времени дд-мм-гг, выполните команду:
$ date +"%d-%m-%y" 26-03-21
Если вы просто хотите просмотреть только текущее время и ничего больше, используйте команду:
$ date "+%T" 11:17:11
Команда timedatectl — это новая утилита, используемая в современных системах Linux, таких как Ubuntu 18.04, RHEL 8 и CentOS 8. Это замена команды даты, которая использовалась в старых системах SysVinit. Его можно использовать для запроса и настройки времени в системе Linux.
Без каких-либо параметров команда timedatectl выводит массив информации, такой как местное время, время UTC, время RTC и часовой пояс, и это лишь некоторые из них.
Как установить часовой пояс в системе Linux
В системе Linux время зависит от установленного часового пояса. Чтобы проверить часовой пояс, настроенный в вашей системе, введите команду:
Судя по приведенному выше фрагменту, я нахожусь в часовом поясе Африка/Найроби. Чтобы просмотреть доступные часовые пояса, выполните команду:
$ timedatectl list-timezones
Нажмите ENTER, чтобы просмотреть весь список доступных часовых поясов.
Часовые пояса также определяются в пути /usr/share/zoneinfo/, как показано.
Есть несколько способов, которые вы можете использовать для настройки часового пояса. С помощью команды timedatectl вы можете установить часовой пояс, например, Америка/Чикаго, используя показанный синтаксис.
$ timedatectl set-timezone 'America/Chicago'
Другой способ установить часовой пояс — создать символическую ссылку из файла часового пояса по пути /usr/share/zoneinfo на /etc/localtime. Например, чтобы установить местный часовой пояс на EST (Восточное стандартное время), введите команду:
$ sudo ln -sf /usr/share/zoneinfo/EST /etc/localtime
Установите дату и время в системе Linux
Чтобы установить время только в системе Linux с использованием формата ЧЧ:ММ:СС (час:минута:секунда), используйте приведенный ниже синтаксис.
$ timedatectl set-time 18:30:45
Чтобы установить дату только в формате ГГ-ММ-ДД (Год: Месяц: День), используйте следующий синтаксис:
$ timedatectl set-time 20201020
Чтобы установить дату и время, запустите:
$ timedatectl set-time '2020-10-20 18:30:45'
ПРИМЕЧАНИЕ. Не рекомендуется вручную устанавливать время и дату таким образом, так как вы, скорее всего, настроите неточные параметры времени и даты. На самом деле, по умолчанию автоматическая синхронизация времени включена, чтобы вы не могли вручную настроить время и дату.
Наиболее рекомендуемый способ установить время — либо указать часовой пояс, в котором вы находитесь, как показано ранее, либо включить автоматическую синхронизацию времени с удаленным сервером NTP.
Установите автоматическую синхронизацию времени с помощью NTP-сервера
NTP – это сокращение от Network Time Protocol — интернет-протокола, который используется для автоматической синхронизации системных часов с пулом сетевых NTP-серверов.
С помощью команды timedatectl вы можете настроить автоматическую синхронизацию времени следующим образом:
Чтобы отключить автоматическую синхронизацию времени NTP, выполните:
Заключение
Команды timedatectl и date — это удобные инструменты командной строки, которые могут помочь вам проверить и настроить время в Linux.
Как узнать в Linux время на сервере?
В системе Linux весьма важно иметь правильное время и дату, поскольку от этого зависит многое. К тому же неважно, используете ли вы систему Linux на своем персональном компьютере или у вас Linux-сервер. В UNIX время обладает огромное значение: демоны вылязят для свершения тёмных злодеяний по crontab, в логах укрепляется время сообщений, а файловые системы хранят информацию о том, когда файл в последний раз обновлялся. Существует 2 способа для установки даты и времени в Linux:
- Вы можете ставить время в ручную, но надобно быть осторожными, т.к. большинство таймеров склонны убегать или отставать. Есть правда маленькой трюк — поставить в загрузочный скрипт команду hwclock с параметрами о которых будет сказанно ниже.
- Вы сможет поднять сервис NTP (Network Time Protocol), который будет с заданной периодичностью занимать точное время с сервера с атомными часами. Очень рекомендую использование NTP.
Впрочем в системе по умолчанию настроена синхронизация времени с интернетом и я уже давно забыл что значит всегда перенастраивать часы, если они отстают, такая необходимость может появиться. В этой посте мы рассмотрим как выполняется установка времени Linux различными способами, через терминал, графичный интерфейс и так далее. Но сначала нам нужно понять как работает время.
Какое время бывает в Linux?
Для поддержания времени имеется в Linux есть команда date, и у неё есть множество других замечательных возможностей, о каких владельцы UNIX-систем могут и не догадываться. Серверные и системные часы должны указывать верное время. Время от времени часы на компьютере могут сбиваться по различным причинам, время сможет быть установлено изначально неправильно или неправильно выбран часовой пояс.
Немного теории. В любом компьютере есть два вида часов. Одни аппаратные (ЧРВ — часы настоящего времени или RTC — real time clock), которые работают даже при выключенном блоке кормления, на это у них есть батарейка на материнской плате. Другие программные, то есть часы (прибор для определения текущего времени суток и измерения продолжительности временных интервалов в единицах, меньших, чем одни сутки) операционной системы. Сведения этих часов могут различаться. При этом программные часы опираются на показания аппаратных при старте операторной системы. А в дальнейшем могут синхронизироваться через интернет с эталонными и корректировать ход аппаратных.
Внимание: дату и время может изменять только root-пользователь.
В большинстве ситуации если компьютер работает под управлением операционной системой Windows показания аппаратных и программных часов сходят. В linux же чаще всего аппаратные часы настраивают по гринвичу (времени нулевого экватора), а программные по необходимому смещению для часового пояса где расположен сервер. Абсолютное большинство прог (приложений и сервисов) в своей работе опираются на показания системных (программных) часов.
Узнать время на сервере в Linux Ubuntu
Знаете ли вы, что по умолчанию в Linux каждые день примерно в четыре часа ночи запускаются различные служебные задачи?! Например чистка временных каталогов, сжатие лог-файлов и т.п. А теперь представьте, что время на сервере настроено ошибочно и все эти задачи запускаются в час пик посещаемости вашего сайта. Правильно установленные дата и время нужны для корректной работы планировщика задач.
Кроме того, они пишутся во все основные целые лог-файлы и лог-файлы посещений веб-сервера. Никогда не возникало желания узнать время или дату, когда под рукой только Ubuntu, а телефон с часами где-то запропастились? Запустите команду date без характеристик для проверки времени. Как всегда в Ubuntu все элементарно, нужно только набрать команду:
Команда date — как раз для этих целей. Можно почитать ее справку — там много чего интересного.
Когда временная зона установлена неправильно, используйте «timeconfig» или «linuxconf» для корректировки. Если с преходящей зоной все в порядке, но дата или время нуждаются в обновлении, то используйте команды (Команда — группа лиц, объединённая общими мотивами, интересами) описанные ниже. Бригада во второй строке нужна что бы обновить машинный таймер.
Как узнать время через консоль Linux?
Наверное у многих были ситуации, когда под руками лишь консоль, а время узнать нужно. Для того, чтобы посмотреть текущее время чрез консоль Linux достаточно ввести следующую команду
Для этого, чтобы поменять время консоль Linux нужно ввести следующую команду:
где, MM — представляется месяцем, DD — днем, hh — часом, mm — минутой, CCYY — годом (вводим так – хххх), ss — секундами. То имеется в виде МесяцДеньЧасМинута, остальное [MMDDhhmm[[CC]YY][.ss]] по вкусу. Об это хорошо (и главное в самом верху) составлено в мануале man date, однако остальное писалось, по всей видимости, роботами для роботов. Воздействие нужно выполнять из под рута. Для того, чтобы посмотреть полный список команд, какие помогут вам изменить/настроить время через консоль Linux достаточно ввести
Как настроить время на сервере Linux чрез hwclock?
Проверим, что показывают аппаратные часы, для чего будем использовать три вида команды hwclock:
# hwclock
Sun 09 Mar 2014 08:01:03 PM MSK -0.926999 seconds
# hwclock —localtime
Sun 09 Mar 2014 04:01:16 PM MSK -0.130659 seconds
# hwclock —utc
Sun 09 Mar 2014 08:01:25 PM MSK -0.411394 seconds
Ставим время аппаратных часов равное системному:
Ставим время системных часов на основании ЧРВ:
Устанавливаем время равновеликое указанному:
hwclock —set —date «09 Jan 2012 14:11»
Приведенный пример для варианта когда аппаратные часы идут по UTC, а сервер настроен на Московский часовой пояс. Специальных пояснений требует опция —utc вывод времени производится (формируется) с условием, что аппаратные часы идут по времени UTC. То имеется показания должны совпадать с желаемым временем на сервере. Опция же —localtime наоборот демонстрирует время (форма протекания физических и психических процессов, условие возможности изменения) аппаратных часов без всяких поправок.
Настройка сервера времени ntp в Linux
Для этого, чтобы ваша система могла автоматический регулировать время, вам нужно установить програмку ntp. Получите ее из репозитария. После того, как она будет установлена, вы можете настроить ее следующим образом. Однократно хронируем время:
Если получили что-то вроде the NTP socket is in use, exiting — значивает ntpd демон уже запущен. В этом случае остановим его:
Налаживаем работу ЧРВ в BIOS на время по UTC:
Этой бригадой мы присвоили значение времени аппаратных часов равным системному времени. Как вы помните, целые часы мы синхронизировали командами выше. Проверим содержимое файла /etc/sysconfig/clock дабы система после загрузки правильно выставляла местное время.
Теперь целые и аппаратные часы вашего сервера будут автоматически синхронизироваться с эталонными серверами и постоянно показывать точное время. Теперь вы знаете как выполняется установка времени linux. Как видите, это очень просто, вы можете использовать различные способы, в зависимости от того, что вам будет спокойнее.