Просмотр времени на сервере Linux

Обновлено: 04.07.2024

Современные операционные системы различают следующие два типа часов:

  • часы реального времени ( RTC ), обычно называемые аппаратными часами (обычно это интегральная схема на системной плате), которые полностью независимы от текущее состояние операционной системы и работает, даже когда компьютер выключен.
  • системные часы , также известные как программные часы , которые поддерживаются ядром, а их начальное значение основано на часах реального времени. После загрузки системы и инициализации системных часов системные часы полностью независимы от часов реального времени.

Системное время всегда хранится в формате Всемирное скоординированное время ( UTC ) и преобразуется в приложениях в местное время по мере необходимости. Местное время — это фактическое время в вашем текущем часовом поясе с учетом летнего времени (DST). Часы реального времени могут использовать либо UTC, либо местное время. Рекомендуется использовать UTC.

Red Hat Enterprise Linux 7 предлагает три инструмента командной строки, которые можно использовать для настройки и отображения информации о системной дате и времени:

  • Утилита timedatectl, которая впервые появилась в Red Hat Enterprise Linux 7 и является частью systemd .
  • Традиционная команда даты.
  • Утилита hwclock для доступа к аппаратным часам.

3.1. Использование команды timedatectl

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

Информацию о том, как отобразить текущую дату и время в пользовательском формате, см. также в Разделе 3.2, «Использование команды даты».

3.1.1. Отображение текущей даты и времени

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

Здесь отображается местное и универсальное время, текущий часовой пояс, состояние конфигурации протокола сетевого времени ( NTP ) и дополнительная информация, связанная с переходом на летнее время.

Пример 3.1. Отображение текущей даты и времени

Ниже приведен пример вывода команды timedatectl в системе, не использующей NTP для синхронизации системных часов с удаленным сервером:

Изменения в статусе chrony или ntpd не будут сразу замечены timedatectl . Если в конфигурацию или состояние этих инструментов внесены изменения, введите следующую команду:

3.1.2. Изменение текущего времени

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

Замените ЧЧ на час, ММ на минуту, а СС на секунду, все введите двузначным числом.< /p>

Эта команда обновляет как системное время, так и аппаратные часы. Результат аналогичен использованию команд date --set и hwclock --systohc.

Команда завершится ошибкой, если включена служба NTP. См. Раздел 3.1.5, «Синхронизация системных часов с удаленным сервером», чтобы временно отключить службу.

Пример 3.2. Изменение текущего времени

Чтобы изменить текущее время на 23:26, выполните следующую команду от имени пользователя root :

По умолчанию система настроена на использование UTC. Чтобы настроить систему так, чтобы часы отображали местное время, запустите команду timedatectl с параметром set-local-rtc от имени пользователя root :

Чтобы настроить систему для поддержки часов по местному времени, замените boolean на yes (или, альтернативно, y , true , t или 1 ). Чтобы настроить систему на использование UTC, замените boolean на no (или, альтернативно, n , false , f или 0 ). Параметр по умолчанию — нет .

3.1.3. Изменение текущей даты

Чтобы изменить текущую дату, введите в командной строке от имени root следующее:

Замените ГГГГ на четырехзначный год, ММ на двузначный месяц и ДД на двузначный день месяц.

Обратите внимание, что изменение даты без указания текущего времени приводит к установке времени на 00:00:00.

Пример 3.3. Изменение текущей даты

Чтобы изменить текущую дату на 2 июня 2017 г. и сохранить текущее время (23:26), выполните следующую команду от имени пользователя root :

3.1.4. Изменение часового пояса

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

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

Замените time_zone любым из значений, перечисленных командой timedatectl list-timezones.

Пример 3.4. Изменение часового пояса

Чтобы определить, какой часовой пояс ближе всего к вашему текущему местоположению, используйте команду timedatectl с параметром командной строки list-timezones. Например, чтобы вывести список всех доступных часовых поясов в Европе, введите:

Чтобы изменить часовой пояс на Европу/Прагу, введите от имени root:

3.1.5. Синхронизация системных часов с удаленным сервером

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

Служба NTP может быть включена и отключена с помощью следующей команды:

Чтобы ваша система могла синхронизировать системные часы с удаленным сервером NTP, замените boolean на yes (параметр по умолчанию). Чтобы отключить эту функцию, замените boolean на no.

Пример 3.5. Синхронизация системных часов с удаленным сервером

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

Команда завершится ошибкой, если служба NTP не установлена. Дополнительную информацию см. в Разделе 18.3.1, «Установка хрони».

3.2. Использование команды даты

Утилита даты доступна во всех системах Linux и позволяет отображать и настраивать текущую дату и время. Он часто используется в сценариях для отображения подробной информации о системных часах в пользовательском формате.

Информацию о том, как изменить часовой пояс или включить автоматическую синхронизацию системных часов с удаленным сервером, см. в разделе 3.1, «Использование команды timedatectl».

3.2.1. Отображение текущей даты и времени

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

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

По умолчанию команда date отображает местное время. Чтобы отобразить время в формате UTC, запустите команду с параметром командной строки --utc или -u:

Вы также можете настроить формат отображаемой информации, указав параметр +" format " в командной строке:

Замените format одной или несколькими поддерживаемыми управляющими последовательностями, как показано в Примере 3.6, «Отображение текущей даты и времени». См. Таблица 3.1, «Часто используемые управляющие последовательности» для получения списка наиболее часто используемых параметров форматирования или страницу руководства date (1) для получения полного списка этих параметров.

Таблица 3.1. Часто используемые управляющие последовательности

Час в формате ЧЧ (например, 17 ).

Минуты в формате MM (например, 30 ).

Секунда в формате SS (например, 24 ).

День месяца в формате ДД (например, 16 ).

Месяц в формате MM (например, 09 ).

Год в формате ГГГГ (например, 2016 ).

Сокращение часового пояса (например, CEST ).

Полная дата в формате ГГГГ-ММ-ДД (например, 2016-09-16 ). Этот параметр равен %Y-%m-%d .

Полное время в формате ЧЧ:ММ:СС (например, 17:30:24). Этот параметр равен %H:%M:%S

Пример 3.6. Отображение текущей даты и времени

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

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

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

3.2.2. Изменение текущего времени

Чтобы изменить текущее время, запустите команду date с параметром --set или -s от имени пользователя root:

Замените ЧЧ на час, ММ на минуту, а СС на секунду, все введите двузначным числом.< /p>

По умолчанию команда date устанавливает системные часы на местное время. Чтобы установить системные часы в формате UTC, запустите команду с параметром командной строки --utc или -u:

Пример 3.7. Изменение текущего времени

Чтобы изменить текущее время на 23:26, выполните следующую команду от имени пользователя root :

3.2.3. Изменение текущей даты

Чтобы изменить текущую дату, запустите команду date с параметром --set или -s от имени пользователя root :

Замените ГГГГ на четырехзначный год, ММ на двузначный месяц и ДД на двузначный день месяц.

Обратите внимание, что изменение даты без указания текущего времени приводит к установке времени на 00:00:00.

Пример 3.8. Изменение текущей даты

Чтобы изменить текущую дату на 2 июня 2017 г. и сохранить текущее время (23:26), выполните следующую команду от имени пользователя root :

3.3. Использование команды hwclock

hwclock — это утилита для доступа к аппаратным часам, также называемым часами реального времени (RTC).Аппаратные часы не зависят от используемой операционной системы и работают, даже когда машина выключена. Эта утилита используется для отображения времени с аппаратных часов. hwclock также содержит средства для компенсации систематического дрейфа аппаратных часов.

Аппаратные часы сохраняют значения: года, месяца, дня, часа, минуты и секунды. Он не может сохранять стандартное время, местное время или всемирное координированное время (UTC), а также устанавливать летнее время (DST).

Утилита hwclock сохраняет свои настройки в файле /etc/adjtime, который создается при первом изменении, которое вы вносите, например, когда вы устанавливаете время вручную или синхронизируете аппаратные часы с системным временем.

Чтобы узнать об изменениях в поведении hwclock между версиями Red Hat Enterprise Linux 6 и 7, см. Руководство по планированию миграции Red Hat Enterprise Linux 7.

3.3.1. Отображение текущей даты и времени

Запуск hwclock без параметров командной строки, поскольку пользователь root возвращает дату и время по местному времени в стандартный вывод.

Обратите внимание, что использование параметров --utc или --localtime с командой hwclock не означает, что аппаратное время отображается в формате UTC или по местному времени. Эти параметры используются для настройки аппаратных часов, чтобы они отображали время в любом из них. Время всегда отображается по местному времени. Кроме того, использование команд hwclock --utc или hwclock --local не изменяет запись в файле /etc/adjtime. Эта команда может быть полезна, когда вы знаете, что параметр, сохраненный в /etc/adjtime, неверен, но вы не хотите его менять. С другой стороны, вы можете получить вводящую в заблуждение информацию, если используете команду неправильно. Дополнительную информацию см. на странице руководства hwclock (8).

Пример 3.9. Отображение текущей даты и времени

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

CEST – это аббревиатура часового пояса, обозначающая центральноевропейское летнее время.

Информацию о том, как изменить часовой пояс, см. в разделе 3.1.4, «Изменение часового пояса».

3.3.2. Установка даты и времени

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

Если вам нужно изменить дату и время аппаратных часов, вы можете сделать это, добавив параметры --set и --date вместе со своей спецификацией:

Замените дд на день (двузначное число), ммм на месяц (трехбуквенное сокращение), гггг с годом (четырехзначное число), ЧЧ с часом (двузначное число), ММ с минутой (двузначное число).< /p>

В то же время вы также можете настроить аппаратные часы так, чтобы они отображали время в формате UTC или по местному времени, добавив параметры --utc или --localtime соответственно. В этом случае UTC или LOCAL записываются в файл /etc/adjtime.

Пример 3.10. Установка аппаратных часов на определенную дату и время

Если вы хотите установить для даты и времени определенное значение, например "21:17, 21 октября 2016 г.", и сохранить аппаратные часы в формате UTC, выполните команду от имени пользователя root в следующем формате:

3.3.3. Синхронизация даты и времени

Вы можете синхронизировать аппаратные часы и текущее системное время в обоих направлениях.

Вы также можете установить аппаратные часы на текущее системное время с помощью этой команды:

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

Или вы можете установить системное время по аппаратным часам с помощью следующей команды:

При синхронизации аппаратных часов и системного времени вы также можете указать, хотите ли вы, чтобы аппаратные часы отображали местное время или время в формате UTC, добавив параметр --utc или --localtime. Аналогично использованию --set , UTC или LOCAL записываются в файл /etc/adjtime.

Команда hwclock --systohc --utc функционально аналогична команде timedatectl set-local-rtc false, а команда hwclock --systohc --local является альтернативой команде timedatectl set-local-rtc true .

Пример 3.11. Синхронизация аппаратных часов с системным временем

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

Чтобы избежать проблем с переключением часового пояса и летнего времени, рекомендуется устанавливать аппаратные часы в формате UTC. Показанный пример 3.11, «Синхронизация аппаратных часов с системным временем» полезен, например, в случае мультизагрузки с системой Windows, которая предполагает, что аппаратные часы работают по местному времени по умолчанию, а все другие системы должны приспосабливаться. к нему, используя местное время, а также. Это также может понадобиться с виртуальной машиной; если виртуальные аппаратные часы, предоставляемые хостом, работают по местному времени, гостевая система также должна быть настроена на использование местного времени.

3.4. Дополнительные ресурсы

Дополнительную информацию о том, как настроить дату и время в Red Hat Enterprise Linux 7, см. в перечисленных ниже ресурсах.

Чтобы увидеть время в системе Debian GNU/Linux, используйте команду date без аргументов, она покажет системное время с учетом текущего часового пояса.

Чтобы увидеть время в часовом поясе UTC, используйте команду date --utc (или сокращение date -u). См. страницу руководства даты.

Установите время вручную

При установке системного времени вручную с использованием даты напрямую требуемый формат указания времени может сбивать с толку (по соглашению POSIX должен быть ММДДччммГГГГ). Однако при использовании аргумента --set date принимает дату и время во многих форматах. Вы можете прочитать справочную страницу даты или использовать приведенный ниже пример для одного возможного и очень полезного формата. Приведенные ниже примеры аргумента --set указаны в расширенном формате стандарта ISO 8601 как ГГГГ-ММ-ДД для Год-Месяц-ДеньМесяца и время дня ЧЧ:ММ:СС в 24-часовом формате. Ведущие нули имеют значение.

Приведенные выше две команды устанавливают системную дату на второе ноября 1998 года и системное время на восемь минут девятого вечера.
Обратите внимание: использование команды date устанавливает только системное время времени выполнения (так называемые программные часы), но не влияет на базовые аппаратные часы (также известные как RTC = часы реального времени). Когда система загружается, она не имеет понятия абсолютного времени и будет заполнять системное время датой и временем, считанными с аппаратных часов, таким образом, чтобы гарантировать, что время, установленное с использованием даты, сохраняется при перезагрузках, оно должно быть сохранено на аппаратном уровне. часы.

Большинство настольных сред предоставляют утилиту настройки даты/времени. См. также программу time-admin в пакете gnome-system-tools.

Настройка аппаратных часов

Чтобы записать текущее системное время в аппаратные часы, чтобы его можно было восстановить при последующих перезапусках системы, исправьте системное время, как указано выше, затем используйте команду hwclock --systohc для сохранения на аппаратное обеспечение (дополнительные параметры см. на странице руководства hwclock).

Современные выпуски Debian (2.2 и последующие) автоматически сохраняют системное время на аппаратных часах при правильном завершении работы и устанавливают системные часы на аппаратные часы при загрузке. Это делается скриптом /etc/init.d/hwclock.sh.

Автоматическая установка времени

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

Установка NTP

где XX — ваш континент или двухбуквенный код страны. Нажмите на континент, чтобы увидеть действительные коды стран. например, CA для Канады и т. д.

увеличивая число для каждой строки. Два или три должно быть все, что вам нужно.

Аппаратные часы и системное время при двойной загрузке

В то время как Debian предпочитает поддерживать аппаратные часы в формате UTC (это предотвращает необходимость их перевода при переходе на летнее время и изменении часового пояса), другие системы (например, Windows) по умолчанию синхронизируют аппаратные часы с местным временем. Чтобы поддерживать работоспособность аппаратных часов и правильно отображать время в нескольких системах, им необходимо договориться о том, в каком часовом поясе хранятся аппаратные часы.

В Debian часовой пояс для аппаратных часов настраивается в файле /etc/adjtime;

В Linux имеется ряд утилит управления временем, таких как timedatectl, date и т. д., с помощью которых вы можете просмотреть текущий часовой пояс в вашей системе Linux. В этой статье мы обсудим некоторые способы проверки системного часового пояса в Linux.

Способ 1. Использование команды «timedatectl»

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

Синтаксис:

Пример:


Использование команды timedatectl для отображения часового пояса

Как видно из приведенного выше примера, мы можем легко найти информацию о часовом поясе, которая называется «Азия/Калькутта (IST, +0530)» на приведенном выше снимке экрана.

Способ 2. Использование конвейерной функции Linux с командой timedatectl и grep

Мы можем использовать конвейерную функцию Linux (вывод одной команды становится вводом другой команды), чтобы узнать часовой пояс. В этом случае выходные данные, сгенерированные командой timedatectl, ищутся по ключевому слову, которым в нашем случае является «Часовой пояс», и в итоге мы получаем только соответствующий результат.

Синтаксис:

Пример:


Использование конвейерной функции Linux для timedatectl и grep для отображения часового пояса

В приведенном выше примере мы получили только требуемый вывод «Часовой пояс: Азия/Калькутта (IST, +0530)» по сравнению с предыдущим методом, в котором использовался только timedatectl. Это может быть лучшим методом, если вы не хотите самостоятельно искать нужную строку в выводе, как в предыдущем методе.

Способ 3. Использование команды cat

Мы можем использовать команду cat и необходимый файл для отображения часового пояса. команда cat отображает содержимое файла, и в нашем случае, чтобы найти часовой пояс, мы будем искать файл с именем часовой пояс в каталоге /etc Linux. etc — это каталог Linux, содержащий все файлы конфигурации системы.

Синтаксис:

Пример 1:

Используя первую команду «cat /etc/timezone»


использование команд cat /etc/timezone для определения часового пояса

Пример 2:

Сначала перейдите в каталог Linux /etc и введите команду cat timezone.


Пошаговый процесс отображения часового пояса с помощью команд cd и cat

Способ 4. Использование команды date

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

Синтаксис:

Пример:


Использование команды даты для отображения часового пояса

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

Отслеживайте время в Linux, настроив системную дату и время с помощью команды timedatectl.

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

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

В этом руководстве показано, как просматривать, настраивать и настраивать время и дату в Linux из командной строки с помощью команды timedatectl.

Как управлять временем в Linux

Для обеспечения точного времени в Linux используются часы двух разных типов:

  • Часы реального времени (RTC) или аппаратные часы, встроенные в печатную плату вашего компьютера и работающие независимо от операционной системы. Часы продолжают работать, даже если ваша операционная система выключена, перезагружена или находится в спящем режиме.
  • Системные часы, также известные как программные часы. Поддерживаемые ядром Linux, системные часы зависят от часов реального времени, чтобы получить начальное время при загрузке ОС Linux.

По умолчанию ваше системное время хранится в формате универсального скоординированного времени (UTC). Затем ваша система Linux преобразует время UTC в правильное местное время в зависимости от вашего региона или часового пояса. Местное время отображается на рабочем столе.

Вывод информации о времени и дате

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

Чтобы отобразить время и другие параметры конфигурации, просто запустите команду timedatectl без каких-либо параметров следующим образом:

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

Как настроить время в Linux

Чтобы установить или изменить время, используйте команду timedatectl вместе с подкомандой set-time.

Примечание. Для настройки времени или даты необходимы повышенные права.

В вышеупомянутой команде чч обозначает часы, мм — минуты, а сс — секунды. Указываемое время должно быть в 24-часовом формате.

Например, чтобы установить время на 12 часов ночи, выполните следующую команду:

Эта команда обновляет как часы реального времени, так и системные или программные часы. Однако вы не сможете изменить время или дату, если в вашей системе включен сетевой протокол времени (NTP).

Как включить/отключить NTP

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

Чтобы отключить NTP в Linux, выполните следующую команду:

Чтобы снова активировать или включить NTP, просто запустите:

После включения система автоматически настраивает и синхронизирует время с настроенным временем сервера.

Примечание. Подкоманда set-ntp не будет работать, если ваша система не поддерживает NTP.

Как установить дату в Linux

Чтобы изменить дату на вашем компьютере, вы можете запустить команду timedatectl с подкомандой set-time в следующем формате:

<р>. где ГГГГ — год, ММ — месяц, а ДД — день.

Например, чтобы изменить дату на 1 января 2000 г., введите следующую команду:

Обратите внимание, что мы также указали время, потому что, если вы укажете только дату, timedatectl автоматически установит время на 00:00, т. е. 12 часов ночи.

Изменение часового пояса

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

Используйте клавишу F на клавиатуре для прокрутки вперед и клавишу B для прокрутки списка часовых поясов назад. Кроме того, вы можете использовать клавиши со стрелками для прокрутки.

Определив свой часовой пояс, вы можете, например, переключиться на часовой пояс Африки/Блантайра с помощью следующей команды:

Получение справки из командной строки

Чтобы узнать больше о timedatectl, введите следующую команду:

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

Альтернативные утилиты учета рабочего времени в Linux

В этом руководстве показано, как настроить время и дату в Linux с помощью утилиты timedatectl, мощной и современной программы для настройки часов, которая входит в состав службы systemd. Другими традиционными утилитами настройки часов в Linux являются команды hwclock и date.

Читайте также: