Линукс установка времени: Как изменить дату и время в консоли linux

Содержание

NTP, Chrony и systemd-timesyncd / Хабр


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

Более того: некоторые из нас одержимы временем. Мои часы питаются от солнечной энергии и получают точное время из Национального института стандартов и технологий (NIST) в Форт-Коллинз (штат Колорадо) через длинноволновую радиостанцию WWVB. Сигналы времени синхронизируются с атомными часами, также расположенными в форте Коллинз. Мой Fitbit синхронизируется с моим телефоном, который синхронизируется с сервером NTP, который в конечном итоге синхронизируется с атомными часами.

Устройства тоже следят за временем


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

Наши телефоны, планшеты, автомобили, системы GPS и компьютеры требуют точной настройки времени и даты. Я хочу, чтобы часы на рабочем столе моего компьютера показывали правильное время. Я хочу, чтобы в моём локальном календаре напоминания появлялись в нужное время. Правильное время также гарантирует, что задания cron и systemd запускались в нужное время.

Дата и время также важны для ведения журнала, поэтому немного проще найти те или иные логи, ориентируясь по дате и времени. Например, однажды я работал в DevOps (в то время его так не называли) и занимался настройкой системы электронной почты в штате Северная Каролина. Раньше мы обрабатывали более 20 миллионов писем в день. Отслеживание электронной почты через серию серверов или определение точной последовательности событий с использованием файлов журналов на географически разнесенных хостах может быть намного проще, если соответствующие компьютеры синхронизированы по времени.

Время одно — часов много


Хосты Linux должны учитывать, что существует системное время и время RTC. RTC (Real Time Clock — часы реального времени) является немного странным и не особо точным названием для аппаратных часов.

Аппаратные часы работают непрерывно, даже когда компьютер выключен, используя аккумулятор на материнской плате системы. Основная функция RTC — хранить время, когда соединение с сервером времени недоступно. В те времена, когда нельзя было подключиться к серверу времени через интернет каждый компьютер должен был иметь точные внутренние часы. Операционные системы должны были обращаться к RTC во время загрузки, и пользователь должен был вручную установить системное время, используя аппаратный интерфейс конфигурации BIOS, чтобы убедиться, что оно правильное.

Аппаратные часы не понимают концепцию часовых поясов; в RTC хранится только время, а не часовой пояс или смещение от UTC (Всемирное координированное время, которое также известно как GMT или среднее время по Гринвичу). Вы можете установить RTC с помощью инструмента, о котором я расскажу позже в этой статье.

Системное время — это время, которое ОС отображает на часах GUI на вашем рабочем столе, в выходных данных команды date, в метках времени журналов. Это также относится ко времени создания, изменения и открытия файлов.

На странице man для rtc есть полное описание RTC и системных часов.

Что там у NTP?


Компьютеры во всем мире используют NTP (сетевой протокол времени) для синхронизации своего времени со стандартными эталонными часами через интернет с помощью иерархии серверов NTP. Основные серверы времени находятся на уровне 1, и они напрямую подключены к различным национальным службам времени на уровне 0 через спутник, радио или даже модемы по телефонным линиям. Службы времени на уровне 0 могут быть атомными часами, радиоприёмником, который настроен на сигналы, передаваемые атомными часами, или приёмником GPS, использующим высокоточные сигналы часов, передаваемые спутниками GPS.

На подавляющем большинстве эталонных серверов открыто несколько тысяч общедоступных серверов NTP stratum 2, которые доступны для всех. Многие организации и пользователи (включая меня) с большим количеством хостов, которым требуется NTP-сервер, предпочитают устанавливать свои собственные серверы времени, поэтому только один локальный хост обращается к stratum 2 или 3. Затем они настраивают оставшиеся узлы в сети для использования локального сервера времени. В случае моей домашней сети это сервер уровня 3.

Различные реализации NTP


Первоначальная реализация NTP — это ntpd. Затем к ней присоединились две более новых, chronyd и systemd-timesyncd. Все три синхронизируют время локального хоста с сервером времени NTP. Служба systemd-timesyncd не так надёжна, как chronyd, но этого достаточно для большинства целей. Если RTC не синхронизирован, она может постепенно корректировать системное время, чтобы синхронизироваться с NTP-сервером, когда локальное системное время немного смещается. Служба systemd-timesync не может использоваться в качестве сервера времени.

Chrony — это реализация NTP, содержащая две программы: демон chronyd и интерфейс командной строки под названием chronyc. У Chrony есть некоторые функции, которые во многих случаях просто незаменимы:

  • Chrony может синхронизироваться с сервером времени намного быстрее, чем старый сервис ntpd. Это хорошо для ноутбуков или настольных компьютеров, которые не работают постоянно.
  • Он может компенсировать колебания тактовых частот, например, когда хост переключается в спящий режим или входит в спящий режим, или когда тактовая частота изменяется из-за скачкообразного изменения частоты, которое замедляет тактовые частоты при низких нагрузках.
  • Он решает проблемы со временем, связанные с нестабильным сетевым соединением или перегрузкой сети.
  • Он регулирует задержки в сети.
  • После начальной временной синхронизации Chrony никогда не останавливает часы. Это обеспечивает стабильные и согласованные временные интервалы для многих системных служб и приложений.
  • Chrony может работать даже без подключения к сети. В этом случае локальный хост или сервер можно обновить вручную.
  • Chrony может выступать в качестве NTP-сервера.


Ещё раз: NTP — это протокол, который может быть реализован на хосте Linux с использованием Chrony или systemd-timesyncd.

RPM-пакеты NTP, Chrony и systemd-timesyncd доступны в стандартных репозиториях Fedora. RPM systemd-udev — это менеджер событий ядра, который в Fedora установлен по умолчанию, но не является обязательным для использования.

Вы можете установить все три и переключаться между ними, но это создаст лишнюю головную боль. Так что лучше не стоит. Современные релизы Fedora, CentOS и RHEL перешли на Chrony как стандартную реализацию, и кроме того, у них есть systemd-timesyncd. Я считаю, что Chrony работает хорошо, обеспечивает лучший интерфейс, чем служба NTP, предоставляет гораздо больше информации и повышает контроль, что безусловно понравится системным администраторам.

Отключение служб NTP


Возможно, на вашем хосте уже запущена служба NTP. Если это так, вам нужно отключить её перед переключением на что-то другое. У меня был запущен chronyd, поэтому я использовал следующие команды, чтобы остановить и отключить его. Запустите соответствующие команды для любого демона NTP, который вы используете на своем хосте:

[root@testvm1 ~]# systemctl disable chronyd ; systemctl stop chronyd
Removed /etc/systemd/system/multi-user.target.wants/chronyd.service.
[root@testvm1 ~]#

Проверьте, что служба остановлена и отключена:

[root@testvm1 ~]# systemctl status chronyd
● chronyd.service - NTP client/server
     Loaded: loaded (/usr/lib/systemd/system/chronyd.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: man:chronyd(8)
             man:chrony.conf(5)
[root@testvm1 ~]#

Проверка статуса перед запуском


Статус системной синхронизации часов позволяет определить, запущена ли служба NTP. Поскольку вы ещё не запустили NTP, команда timesync-status намекнёт на это:

[root@testvm1 ~]# timedatectl timesync-status
Failed to query server: Could not activate remote peer. 


Прямой запрос статуса даёт важную информацию. Например, команда timedatectl без аргумента или параметров выполняет подкоманду status по умолчанию:

[root@testvm1 ~]# timedatectl status
           Local time: Fri 2020-05-15 08:43:10 EDT  
           Universal time: Fri 2020-05-15 12:43:10 UTC  
                 RTC time: Fri 2020-05-15 08:43:08      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: no                          
              NTP service: inactive                    
          RTC in local TZ: yes                    
Warning: The system is configured to read the RTC time in the local time zone.
         This mode cannot be fully supported. It will create various problems
         with time zone changes and daylight saving time adjustments. The RTC
         time is never updated, it relies on external facilities to maintain it.
         If at all possible, use RTC in UTC by calling
         'timedatectl set-local-rtc 0'. 
[root@testvm1 ~]#


Так вы получите местное время для вашего хоста, время UTC и время RTC. В данном случае системное время установлено на часовой пояс America / New_York (TZ), RTC установлено на время в местном часовом поясе, а служба NTP не активна. Время RTC начало немного отклоняться от системного времени. Это нормально для систем, часы которых не были синхронизированы. Величина смещения на хосте зависит от времени, прошедшего с момента последней синхронизации системы.

Мы также получили предупреждение об использовании местного времени для RTC — это относится к изменениям часового пояса и настройкам летнего времени. Если компьютер выключен в тот момент, когда необходимо внести изменения, время RTC не изменится. Но для серверов или других хостов, которые работают круглосуточно, это вообще не проблема. Кроме того, любая служба, которая обеспечивает синхронизацию времени NTP, будет корректировать время хоста ещё на начальном этапе запуска, поэтому после завершения запуска время вновь станет правильным.

Установка часового пояса


Обычно вы указываете часовой пояс во время процедуры установки, и у вас нет задачи менять его в дальнейшем. Однако бывают случаи, когда необходимо изменить часовой пояс. Есть несколько инструментов, которые могут помочь. Для определения местного часового пояса хоста Linux использует файлы часовых поясов. Эти файлы находятся в каталоге /usr/share/zoneinfo. По умолчанию для моего часового пояса система прописывает вот это: /etc/ localtime -> ../usr/share/zoneinfo/America/New_York. Но вам не нужно знать такие тонкости, чтобы изменить часовой пояс.

Главное — знать официальное название часового пояса для вашего местоположения и соответствующую команду. Скажем, вы хотите изменить часовой пояс на Лос-Анджелес:

[root@testvm2 ~]# timedatectl list-timezones | column
<SNIP>
America/La_Paz                  Europe/Budapest
America/Lima                    Europe/Chisinau
America/Los_Angeles             Europe/Copenhagen
America/Maceio                  Europe/Dublin
America/Managua                 Europe/Gibraltar
America/Manaus                  Europe/Helsinki
<SNIP>


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

[root@testvm2 ~]# date
Tue 19 May 2020 04:47:49 PM EDT
[root@testvm2 ~]# timedatectl set-timezone America/Los_Angeles
[root@testvm2 ~]# date
Tue 19 May 2020 01:48:23 PM PDT
[root@testvm2 ~]#


Теперь вновь можете изменить часовой пояс своего хоста на местное время.

systemd-timesyncd


Демон systemd timesync предоставляет реализацию NTP, которой легко управлять в контексте systemd. Он устанавливается по умолчанию в Fedora и Ubuntu. Однако запускается он по умолчанию только в Ubuntu. Я не уверен насчёт других дистрибутивов. Вы можете проверить у себя сами:

[root@testvm1 ~]# systemctl status systemd-timesyncd

Конфигурирование systemd-timesyncd


Файл конфигурации для systemd-timesyncd — это /etc/systemd/timesyncd.conf. Это простой файл с меньшим количеством включенных опций, чем в старых сервисах NTP и chronyd. Вот содержимое этого файла (без дополнительных изменений) на моей виртуальной машине с Fedora:

#  This file is part of systemd. 
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See timesyncd.conf(5) for details.
[Time]
#NTP=
#FallbackNTP=0.fedora.pool.ntp.org 1.fedora.pool.ntp.org 2.fedora.pool.ntp.org 3.fedora.pool.ntp.org
#RootDistanceMaxSec=5
#PollIntervalMinSec=32
#PollIntervalMaxSec=2048


Единственный раздел, который он содержит, кроме комментариев, это [Time]. Все остальные строки закомментированы. Это значения по умолчанию, их не нужно менять (если у вас нет для этого причин). Если у вас нет сервера времени NTP, определенного в строке NTP =, по умолчанию в Fedora используется резервный сервер времени Fedora. Я обычно добавляю свой сервер времени:

NTP=myntpserver

Запуск timesync


Запустить и сделать systemd-timesyncd активным можно так:

[root@testvm2 ~]# systemctl enable systemd-timesyncd. service
Created symlink /etc/systemd/system/dbus-org.freedesktop.timesync1.service → /usr/lib/systemd/system/systemd-timesyncd.service.
Created symlink /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service → /usr/lib/systemd/system/systemd-timesyncd.service.
[root@testvm2 ~]# systemctl start systemd-timesyncd.service
[root@testvm2 ~]#

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


Вот как выглядит ситуация после запуска timesyncd:

[root@testvm2 systemd]# timedatectl
               Local time: Sat 2020-05-16 14:34:54 EDT  
           Universal time: Sat 2020-05-16 18:34:54 UTC  
                 RTC time: Sat 2020-05-16 14:34:53      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: no    


Изначально разница между RTC и местным временем (EDT) не превышает секунды, и расхождение возрастает ещё на пару секунд в течение следующих нескольких дней. Поскольку в RTC нет понятия часовых поясов, команда timedatectl должна выполнить сравнение, чтобы определить нужный часовой пояс. Если время RTC точно не соответствует местному времени, то значит, оно не соответствует и местному часовому поясу.

В поисках дополнительной информации я проверил состояние systemd-timesync и обнаружил вот что:

[root@testvm2 systemd]# systemctl status systemd-timesyncd.service
● systemd-timesyncd.service - Network Time Synchronization
     Loaded: loaded (/usr/lib/systemd/system/systemd-timesyncd.service; enabled; vendor preset: disabled)
     Active: active (running) since Sat 2020-05-16 13:56:53 EDT; 18h ago
       Docs: man:systemd-timesyncd.service(8)
   Main PID: 822 (systemd-timesyn)
     Status: "Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org)."
      Tasks: 2 (limit: 10365)
     Memory: 2.8M
        CPU: 476ms
     CGroup: /system.slice/systemd-timesyncd.service
             └─822 /usr/lib/systemd/systemd-timesyncd
May 16 09:57:24 testvm2. both.org systemd[1]: Starting Network Time Synchronization...
May 16 09:57:24 testvm2.both.org systemd-timesyncd[822]: System clock time unset or jumped backwards, restoring from recorded timestamp: Sat 2020-05-16 13:56:53 EDT
May 16 13:56:53 testvm2.both.org systemd[1]: Started Network Time Synchronization.
May 16 13:57:56 testvm2.both.org systemd-timesyncd[822]: Initial synchronization to time server 163.237.218.19:123 (2.fedora.pool.ntp.org).
[root@testvm2 systemd]#


Обратите внимание на сообщение журнала, в котором говорится, что системное время не установлено или сброшено назад. Служба Timesync устанавливает системное время на основе временной метки. Метки времени поддерживаются демоном timesync и создаются при каждой успешной синхронизации.

Команда timedatectl не имеет возможности взять значение аппаратных часов из системных часов. Она может установить время и дату только из значения, введённого в командной строке. Вы можете установить RTC на то же значение, что и системное время, используя команду hwclock:

[root@testvm2 ~]# /sbin/hwclock --systohc --localtime
[root@testvm2 ~]# timedatectl
               Local time: Mon 2020-05-18 13:56:46 EDT  
           Universal time: Mon 2020-05-18 17:56:46 UTC  
                 RTC time: Mon 2020-05-18 13:56:46      
                Time zone: America/New_York (EDT, -0400)
System clock synchronized: yes                          
              NTP service: active                      
          RTC in local TZ: yes


Опция —localtime говорит о том, что аппаратные часы показывают местное время, а не UTC.

Зачем вам вообще RTC?


Любая реализация NTP установит системные часы во время запуска. И зачем тогда RTC? Это не совсем так: это произойдет только в случае, если у вас есть сетевое соединение с сервером времени. Однако многие системы не имеют постоянного доступа к сетевому соединению, поэтому аппаратные часы полезны для того, чтобы Linux мог на их основе установить системное время. Это лучше, чем установка времени вручную, даже если оно может отклоняться от реального времени.

Заключение


В этой статье рассмотрены некоторые инструменты для управления датой, временем и часовыми поясами. Инструмент systemd-timesyncd предоставляет NTP-клиента, который может синхронизировать время на локальном хосте с NTP-сервером. Однако systemd-timesyncd не предоставляет серверную службу, поэтому, если вам нужен NTP-сервер в вашей сети, вы должны использовать что-то ещё — например, Chrony, для работы в качестве сервера.

Я предпочитаю иметь единственную реализацию для любой служб в моей сети, поэтому использую Chrony. Если вам не нужен локальный NTP-сервер или если вы не против использовать Chrony в качестве сервера и systemd-timesyncd в качестве SNTP-клиента. Ведь нет необходимости использовать дополнительные возможности Chrony как клиента, если вас устраивает функционал systemd-timesyncd.

Еще одно замечание: вы не обязаны использовать инструменты systemd для реализации NTP. Вы можете использовать старую версию ntpd, Chrony или другую реализацию NTP. Ведь systemd состоит из большого количества сервисов; многие из них являются необязательными, поэтому их можно отключить и использовать вместо них что-то ещё. Это не огромный монолитный монстр. Можно не любить systemd или его части, но вы должны принять обоснованное решение.

Мне нравится реализация NTP в systemd, но я предпочитаю Chrony, потому что он лучше отвечает моим потребностям. Это Linux, детка -)


На правах рекламы


VDSina предлагает серверы под любые задачи, огромный выбор операционных систем для автоматической установки, есть возможность установить любую ОС с собственного ISO, удобная панель управления собственной разработки и посуточная оплата. Напомним, у нас есть вечные серверы, которые точно неподвластны времени 😉

Установка времени в Linux — как установить нужное время?

Автор Олег Донских На чтение 3 мин Просмотров 2.4к. Опубликовано

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

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

Как установить дату, время и часовой пояс в окне Linux/Unix мы сейчас вам расскажем.
Время Unix или время POSIX, которое является системой для описания точек во времени — это количество секунд, прошедших с полуночи UTC утром 1 января 1970 года.

Кстати, мы уже писали о том как можно поменять язык системы. Рекомендуем ознакомиться, может быть очень полезной информацией.

Содержание

  1. Установка времени в Linux
  2. Установите время в Linux
  3. Установка даты и времени в Linux
  4. Установить часовой пояс Linux
  5. Некоторые связанные с этим утилиты
  6. Выводы

Установка времени в Linux

Количество прошедших секунд может быть получено этой командой в системах Linux / Unix:

$ date +%s

Установка даты в Linux

Дата Linux может быть установлена ​​с использованием следующего синтаксиса:

# date +%Y%m%d -s «yyyymmdd»

yyyy — год, мм — месяц, а dd — день.

Например, мы можем установить дату до 22 июня 2090 года:

# date +%Y%m%d -s «20900622»

Установите время в Linux

Время Linux можно установить с помощью следующего синтаксиса:

# date +%T -s «hh:mm:ss»

hh — час, mm — minite и ss — второй.

Например, мы можем установить время до 12:28:

# date +%T -s "12:28:00"

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

Дата и время могут быть установлены командой даты одновременно:

# date mmddhhmmyyyy.ss

Первый mm означает месяц, а второй mm — время.

Например, мы можем установить дату и время до 11:28 22 июня 2090 года:

# date 062211282090.00

Другой способ установить новую дату и время — использовать следующий синтаксис:

# date —set=«STRING»

Способ установки даты и времени:

# date -s «22 JUN 2017 11:28:00»

или

# date —set=«22 JUN 2017 11:28:00»

Установить часовой пояс Linux

Конфигурационный файл для часового пояса обычно используется / etc / localtime, который часто является символической ссылкой на локальное время файла или на правильный файл часового пояса в системе. Каталог часового пояса: / usr / share / zoneinfo, где вы можете найти список регионов часовых поясов. В некоторых дистрибутивах, таких как Fedora / RHEL / Cent OS, файлы зон используют формат / usr / share / zoneinfo / REGION / CITY.

Метод установки часового пояса Linux:

При необходимости обновлять информацию о часовом поясе

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

Найдите соответствующий часовой пояс из / etc / localtime и создайте для него символическую ссылку
Например, мы хотим установить часовой пояс в Гонконге:

# ln -sf /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

Проверка изменения часового пояса
$ date
Вы можете получить такой вывод:

$ date
Вт Июн 22 12:33:10 HKT 2017

Некоторые связанные с этим утилиты

Вот некоторые связанные с ним утилиты времени и времени Linux.

Обновление текущего системного времени по rdate

# rdate -s time. nist.gov
Список доступных серверов времени, пожалуйста, отметьте NIST Internet Time Servers.

Установите аппаратные часы

# /sbin/hwclock —systohc

У Fedora / RHEL / CentOS есть инструмент установки даты / времени
Вы можете использовать GUI-инструмент в дистрибутивах Red Hat:

# system-config-date

Или попробуйте:

# setup

и затем выберите запись в часовом поясе.

Выводы

Надеемся, что для вас установка времени в Linux была понятной и быстрой даже как и для новичка. Если у вас есть дополнительные вопросы по этой теме, то не стесняйтесь задавать их в форму комментариев. Мы обязательно поможем вам в вопросах касающихся этой темы и подскажем, что делать еще более подробно.

Также, не забывайте делится мнением о руководстве на своих страницах в Facebook, Google+, Twitter, ВКонтакте или Одноклассники. Мы будем очень признательным вам за это.

Как установить дату и время в Linux (Debian, Ubuntu и т.

д.) — RaspberryTips

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

NTP включен по умолчанию в Linux и будет подключаться к Интернет-серверу, чтобы установить дату и время соответственно. Также возможно установить дату и время вручную, из среды рабочего стола или с помощью команды « sudo date -s ‘ГГГГ-ММ-ДД ЧЧ:ММ:СС’ » .

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

Как по умолчанию устанавливаются дата и время в Linux?

Практически в любом дистрибутиве Linux дата и время устанавливаются автоматически через NTP. Это означает «Протокол сетевого времени», и идея состоит в том, чтобы синхронизировать часы с другим компьютером (обычно с онлайн-сервера).

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

Цель этого руководства — показать вам, как настроить это вручную, например, если ваша система не подключена к Интернету или если вы установили неправильный часовой пояс.

Если вы хотите узнать больше о NTP и синхронизации часов в Ubuntu, вы можете щелкнуть эту ссылку, чтобы прочитать мое полное руководство по этой теме.

Установка даты и времени в Linux (интерфейс рабочего стола)

Если в вашей системе есть среда рабочего стола, настройка даты и времени должна быть довольно простой, особенно если у вас есть доступ в Интернет. Но давайте посмотрим, что вы можете сделать, чтобы настроить его правильно.

Получите мою шпаргалку!
Получите бесплатный PDF-файл со всеми командами, которые вам нужно знать в Linux!

Воспользуйтесь мастером установки

Как упоминалось ранее, практически для любого дистрибутива Linux вам потребуется настроить часовой пояс во время установки. На самом деле, даже если вы установите серверную версию Debian (без графического интерфейса), система задаст вам вопрос.

После установки часового пояса операционная система синхронизирует системную дату и время с Интернет-сервером и отображает правильные часы в зависимости от вашего местоположения. В большинстве случаев вы будете установлены после этого. Система Linux будет регулярно синхронизироваться с поставщиком времени, и все должно быть в порядке.

Использовать системные настройки

Если вы пропустите мастер установки или вам нужно что-то изменить в текущей конфигурации, вы можете использовать системные настройки. Он может немного отличаться в зависимости от среды вашего рабочего стола (GNOME, KDE и т. д.), но вы сможете легко его найти.

Я покажу вам, как это сделать в Ubuntu / GNOME, но это очень похоже на другие среды.

Откройте системные настройки из панели запуска приложений (или с помощью значка колеса в правом верхнем углу) .
Найдите в этом инструменте подменю «Дата и время». По умолчанию вы должны увидеть что-то вроде:

Как видите, для него установлено значение «Автоматическая дата и время», и для его настройки используется Интернет.
Отсюда вы можете сделать две вещи:

  • Изменить часовой пояс : Если у вас есть доступ в Интернет, лучше оставить такую ​​конфигурацию. Просто нажмите на часовой пояс, чтобы изменить его, если это необходимо.
    Он покажет вам карту, вам просто нужно нажать на свое местоположение:
  • Переключиться в ручной режим : Если у вас нет доступа к Интернету или вы хотите установить время вручную, вы можете отключить «Автоматическую дату и время», нажав на соответствующую строку.
    После этого у вас будет доступ к строке «Дата и время» (выделена серым цветом на моем предыдущем снимке экрана), чтобы установить ее вручную:

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

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

Получите мою шпаргалку!
Получите бесплатный PDF-файл со всеми командами, которые вам нужно знать в Linux!

Если вы ищете эксклюзивные учебные пособия, я каждый месяц публикую новый курс, доступный только для премиум-членов. Присоединяйтесь к сообществу, чтобы получить доступ ко всем из них прямо сейчас!

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

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

Показать текущую дату

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

Получите мою шпаргалку!
Получите бесплатный PDF-файл со всеми командами, которые вам нужно знать в Linux!

Вы получите длинный формат даты (дата, время, часовой пояс) в соответствии с вашим языком. Это выглядит так:

Да, это по-французски, даже если моя система на английском 🙂

Отключить NTP

Как объяснялось ранее, в большинстве случаев NTP включен по умолчанию, даже если у вас нет среды рабочего стола. Когда NTP включен, вы можете установить дату и время вручную.

Если вы хотите установить дату и время в командной строке, вам необходимо сначала отключить NTP с помощью:
sudo timedatectl set-ntp false
После отключения вы можете использовать команду, которую я дам вам в следующем разделе, и она должна сохранить вашу запись как текущую дату/время.

А если вы хотите вернуться к автоматической дате, просто снова включите NTP с помощью:
sudo timedatectl set-ntp true

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

Изменение даты/времени одной командой

Вот команда для ручной установки даты и времени:
sudo date -s 'DATE'
Например:
sudo date -s '2023-03-14 14:03:00' 90 029 Дата не требуется, вы также можете использовать:
sudo date -s '14:03:00'
Это работает так же.

Команда date работает с большинством форматов даты, но вы можете найти дополнительную информацию на веб-сайте GNU здесь, если у вас есть какие-либо сомнения.

Используйте команду «дата», чтобы проверить, изменилась ли она, как ожидалось:
date

Эта команда довольно распространена во всех дистрибутивах Linux, поэтому она должна работать, даже если вы не используете дистрибутив на основе Debian.

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

Конфигурация NTP и Timedatectl

Кстати, NTP и Timedatectl — это инструменты, которые вам могут понадобиться, если вы хотите углубиться в эту тему. Из-за них синхронизация времени и даты работает при подключении к Интернету, но не так хорошо без него.

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

Например, даже если ваш компьютер не имеет доступа к Интернету, но имеет доступ к локальной сети с сервером времени, вы можете отредактировать конфигурацию, чтобы синхронизировать его с вашим собственным сервером, а не со «случайным» Интернет-сервером.

Я не буду вдаваться в подробности, но у меня есть специальное руководство по NTP, которое вы обязательно должны прочитать, если вам интересно. Например, обязательно настроить что-то подобное, когда вы используете Active Directory или Samba (если ваши часы рассинхронизировались на 5 минут и более, вы не сможете войти на сервер).

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

  • Как изменить настройки DNS на серверах Ubuntu (команды)
  • Как настроить Wi-Fi в Debian (3 способа)
  • Как быстро найти текущий IP-адрес в Linux/Ubuntu

Получите мою шпаргалку!
Получите бесплатный PDF-файл со всеми командами, которые вам нужно знать в Linux!

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

Забыли с командной строкой?
Вам не нужно учить и запоминать все, просто скачайте мою шпаргалку, где я объясняю самые важные команды в Linux, с кратким пояснением и некоторыми примерами.
Загрузите мою бесплатную шпаргалку в формате PDF.

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

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

дата — Как установить текущее время в Linux?

Почему вывод следующих команд отличается?

 root@vmi2115:/var# hwclock
Вс, 26 июня 2011 г., 13:21:38 CEST -0,273230 секунд
root@vmi2495:/var# дата
Вс 26 июня 15:21:39 CEST 2011
root@vmi2115:/var#
 

А можно ли изменить текущее время в Linux?

  • линукс
  • дата

1

Обычно вы хотите, чтобы время устанавливалось автоматически, и в этом случае вам нужно настроить ntpd , чтобы автоматически установить время для вас.

Особенности немного различаются от дистрибутива к дистрибутиву, но если вы используете Ubuntu, например, есть руководство по настройке NTP в Ubuntu. В противном случае просто введите в Google ntpd , и вы, вероятно, найдете его.

Однако, если вы хотите установить его вручную, вы можете использовать date --set="<строка даты>" . Примерами этого могут быть:

 date --set="23 июня 1988 10:00:00"
дата --set="10:00:00"
 

0

Установите аппаратные часы на текущее системное время.

 # hwclock --systohc
 

Установите системное время с помощью аппаратных часов.

 # hwclock --hctosys
 

Просто ntpdate ntp.ubuntu.com и все будет хорошо.

Дополнительную информацию об этом можно найти в официальной документации Ubuntu.

7

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

Проверьте часовой пояс с выходом даты:

$ дата

Пт 23 августа 18:47:04 UTC 2013

Чтобы исправить тип часового пояса:

$ судо tzselect

и выберите нужный регион с соответствующими номерами.

Вторая задача — установить правильное время:

$ sudo дата —set=»18:37:00″

Или просто возьмите время с HW-Clock:

$ судо hwclock —hctosys

«hwclock» — это дата аппаратного обеспечения (машины), а «date» — дата программного обеспечения (операционной системы).

Для смены аппаратной даты ПК:

 hwclock --set --date="2013-7-31 09:30"
 

Для изменения даты программного обеспечения:

 дата --установить "2013-7-31 09:30"
 

В часовых поясах CentOS расположены в /usr/share/zoneinfo/ , чтобы изменить системную дату на конкретный часовой пояс вы можете:

Сначала сделайте резервную копию существующего файла локального времени.

 sudo mv /etc/localtime /etc/localtime.bak
 

Затем создайте ссылку:

 sudo ln -s /usr/share/zoneinfo/Europe/Lisbon /etc/localtime
 

Проверьте новую системную дату, введя date .

Чтобы настроить дату системы Linux вручную , вы можете ввести:

 date -s "11 MAR 2006 11:11:11"
 

ИЛИ

 дата --set="11 МАРТ 2015 11:11:11"
 

ИЛИ

 дата +%Y%m%d -s "20150311"
 

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

 hwclock --systohc
 

ИЛИ

 hwclock -w
 

Попробуйте так:

 дата +%T -s "12:21:00"
 

или

 дата +%T%p -s "00:22:20"
дата +%T%p -s "12:23:30PM"
 

можно ли изменить текущее время в Linux?

Мне нужно было сначала запустить эту команду:

 sudo systemctl stop systemd-timesyncd
 

В противном случае systemd немедленно сбросит время. После остановки службы systemd запуск date работает как положено:

 $ sudo date -s '1 января 1971'
Пт 1 янв 00:00:00 CET 1971
$ дата
Пт 1 янв 00:00:00 CET 1971
 

Пока служба работала, команда date -s , казалось, работала, но запуск date через мгновение снова давал мне время systemd.

дата вернуть время, указанное как время с момента запуска процессора плюс заданное время внутренних аппаратных часов, hwclock показывает время внутренних часов.

Время на основе процессора имеет тенденцию дрейфовать, пока машина работает, что является причиной существования команды hwclock --hctosys . Также это одна из причин использования времени сетевого протокола, которое используется для международной координации времени в Интернете.

используйте это, если у вас нет клиента NTP

 date -s $(wget -q -O - http://www.timeapi.org/eest/now | cut -d '+' -f 1 | tr -d : |tr -d - |tr -d T |cut -c 1-12)
 

EEST в URL-адресе ваш местный часовой пояс

Вы можете использовать UTC .