Mastering av kommandolinjen: Bruk timedatectl til Control System Time og Date i Linux
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.