Mastering av kommandoraden: Använd timedatectl till Control System Time och Date i Linux
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.