Kommandoen timedatectl i Linux giver dig mulighed for at forespørge og ændre systemuret og dets indstillinger. Det kommer som en del af systemd, en erstatning for sysvinit-dæmonen, der bruges i GNU / Linux og Unix-systemer.

I denne artikel vil vi diskutere denne kommando og de funktioner, den giver ved hjælp af relevante eksempler.

Timedatectl eksempler

Bemærk - Alle eksempler, der er beskrevet i denne artikel, testes på GNU bash, version 4.3.11 (1).

Vis system dato / tid information

Du skal blot køre kommandoen uden kommandolinjevalg eller flag, og den giver dig oplysninger om systemets aktuelle dato og klokkeslæt samt tidsrelaterede indstillinger. Her er for eksempel outputen, da jeg udførte kommandoen på mit system:

 $ timedatectl Lokal tid: Lør 2014-11-08 05:46:40 IST Universal tid: Lør 2014-11-08 00:16:40 UTC Tidssone: Asien / Kolkata (IST, +0530) NTP aktiveret: ja NTP synkroniseret: ja RTC i lokal TZ: nej DST aktiv: n / a 

Så du kan se, at output indeholder oplysninger om LTC, UTC og tidszone, samt indstillinger relateret til NTP, RTC og DST for det lokalehost.

Opdater systemdatoen eller klokkeslættet ved hjælp af indstillingstiden

For at indstille systemuret til en bestemt dato eller klokkeslæt, brug set-time efterfulgt af en streng, der indeholder den nye dato / klokkeslæt. For eksempel, for at ændre systemtiden til 6:40, brugte jeg følgende kommando:

 $ sudo timedatectl set-time "2014-11-08 06:40:00" 

og her er output:

 $ timedatectl Lokal tid: Lør 2014-11-08 06:40:02 IST Universeltid: Lør 2014-11-08 01:10:02 UTC Tidssone: Asien / Kolkata (IST, +0530) NTP aktiveret: ja NTP synkroniseret: nej RTC i lokal TZ: nej DST aktiv: n / a 

Vær opmærksom på, at feltet Lokalt tid nu viser opdateret tid. Tilsvarende kan du også opdatere systemdatoen.

Opdater systemets tidszone ved hjælp af indstillet tidszone-indstilling

Hvis du vil indstille systemets tidszone til den angivne værdi, kan du bruge set-timezone efterfulgt af tidszoneværdien. For at hjælpe dig med opgaven, giver kommandoen timedatectl også en anden nyttig mulighed. list-timezones giver dig en liste over tilgængelige tidzoner at vælge imellem.

Her er for eksempel den rullende liste over tidszoner, timedatectl kommandoen produceret på mit system:

For at ændre systemets aktuelle tidszone fra Asien / Kolkata til Asien / Kathmandu, her er kommandoen jeg brugte:

 $ timedatectl set-timezone Asia / Kathmandu 

og for at bekræfte ændringen, her er output fra kommandoen timedatectl :

 $ timedatectl Lokal tid: Lør 2014-11-08 07:11:23 NPT Universal tid: Lør 2014-11-08 01:26:23 UTC Tidssone: Asien / Kathmandu (NPT, +0545) NTP aktiveret: ja NTP synkroniseret: nej RTC i lokal TZ: nej DST aktiv: n / a 

Du kan se, at tidszonen er ændret til den nye værdi.

Konfigurer RTC

Du kan også bruge kommandoen timedatectl til at konfigurere RTC (realtids ur). For dem der ikke er opmærksomme, er RTC et batteridrevet computerur, der holder styr på tiden, selvom systemet er slukket. Kommandoen timedatectl tilbyder en set-local-rtc mulighed, som kan bruges til at opretholde RTC i enten lokal tid eller universeltid.

Denne indstilling kræver et booleansk argument. Hvis 0 leveres, er systemet konfigureret til at opretholde RTC i universeltid:

 $ timedatectl set-local-rtc 0 

men i tilfælde 1 leveres, vil den opretholde RTC i lokal tid i stedet.

 $ timedatectl set-local-rtc 1 

Et forsigtighedsvarsel : Vedligeholdelse af RTC i den lokale tidszone understøttes ikke fuldt ud og vil skabe forskellige problemer med tidszoneændringer og dagslysreguleringer. Hvis det overhovedet er muligt, brug RTC i UTC.

Et andet punkt værd at bemærke er, at hvis set-local-rtc påberåbes og --adjust-system-clock er bestået, synkroniseres systemuret fra RTC igen, idet den nye indstilling tages i betragtning. Ellers synkroniseres RTC fra systemuret.

Konfigurer NTP-baseret netværkssynkronisering

NTP eller Network Time Protocol, er en netværksprotokol til kloksynkronisering mellem computersystemer via pakkekoblede data om datasystem med variabel latens. Det er meningen at synkronisere alle deltagende computere inden for et par millisekunder af UTC.

Kommandoen timedatectl giver en set-ntp mulighed, der styrer, om NTP-baseret netværkssynkronisering er aktiveret. Denne mulighed forventer et booleansk argument. Hvis du vil aktivere NTP-baseret tidssynkronisering, skal du køre følgende kommando:

 $ timedatectl set-ntp true 

For at deaktivere, kør:

 $ timedatectl set-ntp false 

Konklusion

Som det fremgår af eksemplerne beskrevet ovenfor, er kommandoen timedatectl et praktisk værktøj til systemadministratorer, der kan bruge det til at justere forskellige systemklokker og RTC-konfigurationer samt afstemningsafstands servere til tidsinformation. For at lære mere om kommandoen, gå over til sin man side.