Командата timedatectl в Linux ви позволява да заявите и промените системния часовник и неговите настройки. Той идва като част от systemd, заместител на демона sysvinit, използван в GNU / Linux и Unix системи.

В тази статия ще обсъдим тази команда и нейните функции, като използваме съответните примери.

Примерни примери

Забележка - Всички примери, описани в тази статия, се тестват на GNU bash, версия 4.3.11 (1).

Показване на информация за дата / час на системата

Просто изпълнете командата без опции на командния ред или флагове и ви дава информация за текущата дата и час на системата, както и за настройките, свързани с времето. Например, тук е изходът, когато изпълних командата на моята система:

 $ timedatectl Местно време: Sat 2014-11-08 05:46:40 IST Универсално време: сб 2014-11-08 00:16:40 UTC Часова зона: Азия / Колката (IST, +0530) NTP активиран: да NTP синхронизиран: да RTC в местния TZ: не DST активен: n / a 

Така че можете да видите, че изходът съдържа информация за LTC, UTC и часова зона, както и настройки, свързани с NTP, RTC и DST за localhost.

Актуализирайте датата или часа на системата, като използвате опцията за задаване на време

За да зададете системния часовник до определена дата или час, използвайте опцията за set-time, последвана от низ, съдържащ новата информация за дата и час. Например, за да промените системното време до 6:40 часа, аз използвах следната команда:

 $ sudo timedatectl настроен "2014-11-08 06:40:00" 

и тук е изход:

 $ timedatectl Местно време: Sat 2014-11-08 06:40:02 IST Универсално време: сб 2014-11-08 01:10:02 UTC Часова зона: Азия / Колката (IST, +0530) NTP активиран: да NTP синхронизирано: няма RTC в местния TZ: не DST активен: n / a 

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

Актуализирайте часовата зона на системата, като използвате опцията за задаване на часова зона

За да зададете часовата зона на системата на зададената стойност, можете да използвате опцията за времевата зона, последвана от стойността на часовата зона. За да ви помогнем със задачата, командата timedatectl предоставя още една полезна опция. list-timezones ви предоставя списък с наличните часови зони, от които можете да избирате.

Например, тук е превъртащият списък на часовите зони командата timedatectl произведена в моята система:

За да промените текущата часова зона на системата от Азия / Колката до Азия / Катманду, тук е командата, която използвах:

 $ timedatectl set-timezone Азия / Катманду 

и за да потвърдите промяната, ето изхода на командата timedatectl :

 $ timedatectl Местно време: Sat 2014-11-08 07:11:23 NPT Универсално време: сб 2014-11-08 01:26:23 UTC Часова зона: Азия / Катманду (NPT, +0545) NTP активиран: да NTP синхронизирано: няма RTC в местния TZ: не DST активен: n / a 

Можете да видите, че часовата зона е променена на новата стойност.

Конфигуриране на RTC

Можете също така да използвате командата timedatectl за конфигуриране на RTC (часовник в реално време). За тези, които не знаят, RTC е часовник за захранване с батерии, който следи времето, дори когато системата е изключена. Командата timedatectl предлага опция set-local-rtc, която може да се използва за поддържане на RTC в местно време или в универсално време.

Тази опция изисква булев аргумент. Ако се подаде 0, системата е конфигурирана да поддържа RTC в универсално време:

 $ timedatectl задаване-локално-rtc 0 

но в случай, че е доставен, той ще поддържа RTC в местно време вместо това.

 $ timedatectl set-local-rtc 1 

Бележка : Поддържането на RTC в локалната часова зона не се поддържа напълно и ще създаде различни проблеми с промените в часовата зона и настройките за икономия на лятното часово време. Ако е възможно, използвайте RTC в UTC.

Друга забележима точка е, че ако се извика set-local-rtc и се --adjust-system-clock, системният часовник отново се синхронизира от RTC, като се вземе под внимание новата настройка. В противен случай RTC се синхронизира от системния часовник.

Конфигуриране на NTP-базирана мрежова синхронизация на времето

NTP или Network Time Protocol е мрежови протокол за синхронизация на часовника между компютърни системи през мрежи за данни с комутируема памет и данни с променлива закъснение. Целта е да се синхронизират всички участващи компютри в рамките на няколко милисекунди от UTC.

Командата timedatectl предоставя опция за set-ntp, която контролира дали е активирана синхронизирането на времето в мрежата на NTP. Тази опция очаква булев аргумент. За да активирате синхронизирането по време на NTP, изпълнете следната команда:

 $ timedatectl set-ntp true 

За да деактивирате, изпълнете:

 $ timedatectl set-ntp false 

заключение

Както е видно от примерите, описани по-горе, командата timedatectl е удобен инструмент за системни администратори, които могат да го използват, за да настроят различни системни часовници и RTC конфигурации, както и сървъри за отдалечени сървъри за информация за времето. За да научите повече за командата, преминете към страницата на човека.