Kommandot timedatectl i Linux kan du fråga och ändra systemklockan och dess inställningar. Det kommer som en del av systemd, en ersättning för sysvinit-demonen som används i GNU / Linux och Unix-systemen.

I den här artikeln kommer vi att diskutera det här kommandot och de funktioner som det tillhandahåller med hjälp av relevanta exempel.

Timedatectl exempel

Obs! Alla exempel som beskrivs i den här artikeln testas på GNU bash, version 4.3.11 (1).

Visa systemdatum / tidinformation

Hantera bara kommandot utan några kommandoradsalternativ eller flaggor, och det ger dig information om systemets aktuella datum och tid samt tidrelaterade inställningar. Till exempel, här är utgången när jag körde kommandot på mitt system:

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

Så du kan se att utdata innehåller information om LTC, UTC och tidszon, samt inställningar relaterade till NTP, RTC och DST för localhost.

Uppdatera systemets datum eller tid med inställd tid

För att ställa in systemklockan till ett angivet datum eller tid, använd set-time följt av en sträng som innehåller den nya datum / tidinformationen. Till exempel, för att ändra systemtiden till 6:40, använde jag följande kommando:

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

och här är utsignalen:

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

Observera att fältet Lokaltid nu visar uppdaterad tid. På samma sätt kan du uppdatera systemdatumet också.

Uppdatera systemets tidszon med inställd tidszon

För att ställa in systemets tidszon till det angivna värdet, kan du använda alternativet set-timezone följt av tidszonsvärdet. För att hjälpa dig med uppgiften timedatectl kommandot timedatectl också ett annat användbart alternativ. list-timezones ger dig en lista över tillgängliga tidszoner att välja mellan.

Till exempel, här är den rullande listan över tidszoner som kommandot timedatectl producerat på mitt system:

För att ändra systemets nuvarande tidszon från Asien / Kolkata till Asien / Katmandu, här är kommandot jag använde:

 $ timedatectl set-timezone Asia / Kathmandu 

och för att verifiera ändringen, här är utsignalen från kommandot 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 aktiverad: ja NTP synkroniserad: nej RTC i lokal TZ: nej DST aktiv: n / a 

Du kan se att tidszonen ändrades till det nya värdet.

Konfigurera RTC

Du kan också använda kommandot timedatectl att konfigurera RTC (realtidsklocka). För de som inte är medvetna är RTC en batteridriven dator klocka som håller koll på tiden även när systemet är avstängt. Kommandot timedatectl erbjuder ett set-local-rtc alternativ som kan användas för att behålla RTC i lokal tid eller universell tid.

Detta alternativ kräver ett booleskt argument. Om 0 levereras är systemet konfigurerat för att hålla RTC i universell tid:

 $ timedatectl set-local-rtc 0 

men i fall 1 levereras, kommer den att behålla RTC i lokal tid istället.

 $ timedatectl set-local-rtc 1 

Ett försiktighetssvar : Att behålla RTC i den lokala tidzonen stöds inte fullt och kommer att skapa olika problem med tidszonförändringar och sommartidsjusteringar. Om det är möjligt, använd RTC i UTC.

En annan punkt som är värt att notera är att om set-local-rtc är påkallat och --adjust-system-clock är godkänt, synkroniseras systemklockan från RTC igen med hänsyn till den nya inställningen. I annat fall synkroniseras RTC från systemklockan.

Konfigurera NTP-baserad nätverkssynkronisering

NTP eller Network Time Protocol, är ett nätverksprotokoll för klocksynkronisering mellan datorsystem över paketväxlade datanätverk med variabel latens. Det är meningen att synkronisera alla deltagande datorer till inom några millisekunder av UTC.

Kommandot timedatectl tillhandahåller ett set-ntp alternativ som styr huruvida NTP-baserad nätverkssynkronisering är aktiverad. Detta alternativ förväntar sig ett booleskt argument. För att aktivera NTP-baserad tidssynkronisering, kör följande kommando:

 $ timedatectl set-ntp true 

För att inaktivera kör:

 $ timedatectl set-ntp false 

Slutsats

Såsom framgår av exemplen beskrivna ovan är kommandot timedatectl ett praktiskt verktyg för systemadministratörer som kan använda den för att justera olika systemklockor och RTC-konfigurationer samt avstämnings fjärrservrar för tidsinformation. För att lära dig mer om kommandot, gå över till sin man sida.