Kommandoen timedatectl i Linux lar deg spørre og endre systemklokken og dens innstillinger. Den kommer som en del av systemd, en erstatning for sysvinit-demonen som brukes i GNU / Linux og Unix-systemene.

I denne artikkelen vil vi diskutere denne kommandoen og funksjonene den gir ved hjelp av relevante eksempler.

Timedatectl eksempler

Merk - Alle eksempler beskrevet i denne artikkelen er testet på GNU bash, versjon 4.3.11 (1).

Vis system dato / tid informasjon

Bare kjør kommandoen uten kommandolinjealternativer eller flagg, og det gir deg informasjon om systemets nåværende dato og klokkeslett, samt tidsrelaterte innstillinger. For eksempel, her er resultatet når jeg kjørte kommandoen på systemet mitt:

 $ timedatectl Lokal tid: Lør 2014-11-08 05:46:40 IST Universeltid: Lør 2014-11-08 00:16:40 UTC Tidssone: Asia / Kolkata (IST, +0530) NTP aktivert: ja NTP synkronisert: ja RTC i lokal TZ: nei DST aktiv: n / a 

Så du kan se at utdataene inneholder informasjon om LTC, UTC og tidssone, samt innstillinger relatert til NTP, RTC og DST for lokalhosten.

Oppdater systemdatoen eller klokkeslettet ved å bruke opsjonstiden

Hvis du vil stille inn systemklokken til en bestemt dato eller klokkeslett, bruker du alternativet set-time etterfulgt av en streng som inneholder ny dato / klokkeslettinformasjon. For eksempel, for å endre systemtiden til 6:40, brukte jeg følgende kommando:

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

og her er utgangen:

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

Vær oppmerksom på at lokal tidfeltet nå viser oppdatert tid. På samme måte kan du også oppdatere systemdatoen.

Oppdater systemets tidssone ved hjelp av alternativet set-timezone

For å angi systemets tidssone til den angitte verdien, kan du bruke alternativet set-timezone etterfulgt av tidssoneverdien. For å hjelpe deg med oppgaven, gir timedatectl kommandoen også et annet nyttig alternativ. list-timezones gir deg en liste over tilgjengelige tidssoner å velge mellom.

For eksempel, her er den rullbare listen over tidssoner som timedatectl kommandoen produserte på systemet mitt:

For å endre systemets nåværende tidssone fra Asia / Kolkata til Asia / Kathmandu, her er kommandoen jeg brukte:

 $ timedatectl set-timezone Asia / Kathmandu 

og for å bekrefte endringen, her er utgangen av kommandoen timedatectl :

 $ timedatectl Lokal tid: Lør 2014-11-08 07:11:23 NPT Universeltid: Lør 2014-11-08 01:26:23 UTC Tidssone: Asia / Kathmandu (NPT, +0545) NTP aktivert: ja NTP synkronisert: nei RTC i lokal TZ: nei DST aktiv: n / a 

Du kan se at tidszonen ble endret til den nye verdien.

Konfigurer RTC

Du kan også bruke kommandoen timedatectl til å konfigurere RTC (sanntidsklokke). For de som ikke er klar over, er RTC en batteridrevet dataklokke som holder styr på tiden selv når systemet er slått av. Kommandoen timedatectl tilbyr et set-local-rtc alternativ som kan brukes til å opprettholde RTC i lokal tid eller universeltid.

Dette alternativet krever et boolesk argument. Hvis 0 leveres, er systemet konfigurert for å opprettholde RTC i universeltid:

 $ timedatectl set-local-rtc 0 

men i tilfelle 1 leveres, vil den opprettholde RTC i lokal tid i stedet.

 $ timedatectl set-local-rtc 1 

Et forsiktighetsvarsel : Vedlikehold av RTC i den lokale tidssonen støttes ikke fullt og vil skape forskjellige problemer med endring av tidssoner og sommertid. Hvis det er mulig, bruk RTC i UTC.

Et annet poeng som er verdt å merke seg er at hvis set-local-rtc er påkalt og alternativet --adjust-system-clock er bestått, synkroniseres systemklokken fra RTC igjen, og tar hensyn til den nye innstillingen. Ellers synkroniseres RTC fra systemuret.

Konfigurer NTP-basert nettverkssynkronisering

NTP, eller Network Time Protocol, er en nettverksprotokoll for klokkesynkronisering mellom datasystemer over pakkekoblede datanettverk med variabel latens. Det er meningen å synkronisere alle deltakende datamaskiner innen noen få millisekunder av UTC.

Kommandoen timedatectl gir et set-ntp alternativ som kontrollerer om NTP-basert nettverkssynkronisering er aktivert. Dette alternativet forventer et boolesk argument. For å aktivere NTP-basert tidssynkronisering, kjør følgende kommando:

 $ timedatectl set-ntp true 

For å deaktivere, kjør:

 $ timedatectl set-ntp false 

Konklusjon

Som det fremgår av eksemplene beskrevet ovenfor, er kommandoen timedatectl et praktisk verktøy for systemadministratorer som kan bruke den til å justere forskjellige systemklokker og RTC-konfigurasjoner, så vel som avstemningsservere for tidsinformasjon. For å lære mer om kommandoen, gå over til manens side.