Verkkosivustohaku

Kuinka asettaa aika, aikavyöhyke ja synkronoida kello Linuxissa


Tässä artikkelissa opit, kuinka asetetaan aika, aikavyöhyke ja synkronoidaan Linux-järjestelmän kello NTP:n kanssa käyttäen timedatectl-, systemd-timesyncd- ja chrony-komentoja. :

‘timedatectl‘-komento on apuohjelma RHEL- ja Debian-pohjaisille jakeluille, ja se on osa ‘systemd‘-järjestelmä- ja palvelunhallintaa, ja se toimii vanhan perinteisen date-komennon korvikkeena, jota käytettiin ‘sysvinit‘-daemon-pohjaisissa Linux-jakeluissa.

timedatectl-komennolla voit tarkastella ja muuttaa järjestelmäkellon asetuksia. Voit käyttää tätä komentoa nykyisen päivämäärän, ajan ja aikavyöhykkeen asettamiseen tai muuttamiseen, tai ottaa käyttöön automaattisen järjestelmäkellon synkronoinnin etä-NTP-palvelimen kanssa.

Tässä opetusohjelmassa käyn läpi tavat, joilla voit hallita aikaa Linux-järjestelmässäsi asettamalla päivämäärän, ajan, aikavyöhykkeen ja synkronoimalla ajan NTP:n kanssa terminaalin kautta käyttäen timedatectl, systemd-timesyncd ja chrony.

On aina hyvä käytäntö pitää Linux-palvelimen tai -järjestelmän aika oikein, ja sillä voi olla seuraavia etuja:

  • Pidä järjestelmätehtävät ajoissa toimivina, koska suurin osa Linuxin tehtävistä on ajan ohjaamia.
  • Tarkka aika tapahtumien kirjaukseen ja muuhun järjestelmätietoon.
  • Asianmukainen synkronointi hajautetuissa järjestelmissä ja sovelluksissa.
  • Välttämätön turvallisuusprotokollille kuten Kerberos ja SSL/TLS -sertifikaattien tarkistuksessa.

Kuinka löytää ja asettaa paikallinen aikavyöhyke Linuxissa

1. Järjestelmän nykyisen ajan ja päivämäärän näyttämiseksi käytä komentoriviltä komentoa timedatectl seuraavasti:

timedatectl  status

Tarkista Linux-järjestelmän aika ja päivämäärä

Yllä olevassa lähtöarvossa RTC-aika on laitteistokellon aika.

2. Linux-järjestelmäsi aikaa hallitaan aina järjestelmään asetetun aikavyöhykkeen kautta. Näytäksesi nykyisen aikavyöhykkeen, tee seuraavasti:

timedatectl 
OR
timedatectl | grep Time

Tarkista Linux-järjestelmäsi aikavyöhyke

3. Näyttääksesi kaikki saatavilla olevat aikavyöhykkeet, suorita alla oleva komento:

timedatectl list-timezones

Listaa kaikki aikavyöhykkeet Linux-järjestelmässä

4. Löytääksesi paikallisen aikavyöhykkeen sijaintisi mukaan, suorita seuraava komento.

timedatectl list-timezones |  egrep  -o "Asia/B.*"
timedatectl list-timezones |  egrep  -o "Europe/L.*"
timedatectl list-timezones |  egrep  -o "America/N.*"

Löydä paikallinen aikavyöhykkeesi Linuxissa

5. Asettaaksesi paikallisen aikavyöhykkeesi Linuxissa, käytämme alla esitetyllä tavalla set-timezone-vaihtoehtoa.

sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status

Aseta paikallinen aikavyöhyke Linux-järjestelmässä

On aina suositeltavaa käyttää ja asettaa koordinoitu yleisaika, UTC.

sudo timedatectl set-timezone UTC
timedatectl status

Järjestelmäaikasi asettaminen UTC-aikaan

Sinun täytyy kirjoittaa oikea aikavyöhykkeen nimi, muuten voit saada virheitä aikavyöhykettä vaihdettaessa. Seuraavassa esimerkissä aikavyöhyke „Asia/Kolkata” ei ole oikea, mikä aiheuttaa virheen.

failed to set time zone: invalid timezone

Kuinka asettaa aika ja päivämäärä Linuxissa

Voit asettaa järjestelmäsi päivämäärän ja kellonajan käyttämällä komentoa timedatectl seuraavasti:

Aseta aika Linuxissa

6. Ajan asettamiseksi voimme käyttää set-time-kytkintä yhdessä ajan muodossa HH:MM:SS (Tunti, Minuutti ja Sekunti).

sudo timedatectl set-time 12:25:30
timedatectl status

Saatat saada seuraavan virheen, kun asetat päivämäärän kuten yllä on esitetty:

Failed to set time: Automatic time synchronization is enabled

Virhe johtuu siitä, että automaattinen ajan synkronointi (NTP) on käytössä, mikä estää ajan manuaalisen muuttamisen.

Korjataksesi sen, poista ensin NTP käytöstä ja aseta sitten aika.

sudo timedatectl set-ntp false
sudo timedatectl set-time 12:25:30
timedatectl status

Aseta päivämäärä ja paikallinen aika Linuxissa

7. Asettaaksesi sekä päivämäärän että ajan, käytä set-time-vaihtoehtoa yhdessä päivämäärän muodon YYYY-MM-DD (Vuosi, Kuu, Päivä) ja ajan HH:MM:SS (Tunti, Minuutti ja Sekunti) kanssa:

sudo timedatectl set-time '2026-01-23 12:25:30'

Päivämäärän ja ajan määrittäminen muodossa VV:KK:PP ja HH:MM:SS

Kuinka löytää ja asettaa laitteistokello Linuxissa

8. Asettaaksesi laitteistokellosi koordinoituun yleisaikaan, UTC, käytä set-local-rtc boolean-value -asetusta seuraavasti:

Selvitä ensin, onko laitteistokellosi asetettu paikalliseen aikavyöhykkeeseen:

timedatectl | grep local

Aseta laitteistokellosi paikalliseen aikavyöhykkeeseen:

sudo timedatectl set-local-rtc 1

Aseta laitteistokellosi UTC-aikaan Linuxissa

Aseta laitteistokellosi koordinoituun maailmanaikaan (UTC):

sudo timedatectl set-local-rtc 0

Aseta laitteiston kellosi UTC-aikaan

Huomautus: RTC:n asettamista paikalliseen aikaan ei suositella, sillä se voi aiheuttaa ongelmia kesäaikaan siirtymisen yhteydessä, joten on parasta pitää RTC UTC-ajassa.

Linux-järjestelmäkellon synkronointi etä-NTP-palvelimen kanssa

NTP tarkoittaa Network Time Protocol -protokollaa, joka on internetprotokolla, jota käytetään järjestelmän kellon synkronointiin tietokoneiden välillä.

timedatectl-apuohjelma mahdollistaa Linux-järjestelmän kellon automaattisen synkronoinnin etäpalvelinryhmän kanssa NTP:n avulla.

Suurin osa nykyaikaisista Linux-jakeluista käyttää erilaisia toteutuksia NTP-synkronointiin:

  • systemd-timesyncd: Kevyt SNTP (Simple NTP) -asiakasohjelma, joka on sisäänrakennettu systemdiin ja sopii useimpiin työpöytä- ja yksittäispalvelinasennuksiin.
  • chrony: Täysimittainen NTP-toteutus, joka voi toimia sekä asiakkaana että palvelimena. Se käsittelee ajoittaisia verkkoyhteyksiä paremmin ja on tarkempi.

systemd-timesyncdin käyttö

Aloittaaksesi automaattisen ajan synkronoinnin etäisen NTP-palvelimen kanssa, kirjoita seuraava komento terminaaliin, mikä ottaa käyttöön ja käynnistää systemd-timesyncd-palvelun.

sudo timedatectl set-ntp true

Poistaaksesi NTP-ajan synkronoinnin käytöstä, kirjoita seuraava komento päätelaitteessa.

sudo timedatectl set-ntp false

Tarkistaaksesi synkronoinnin tilan:

timedatectl status

Sinun pitäisi nähdä „Järjestelmän kello synkronoitu: kyllä” ja „NTP-palvelu: aktiivinen”.

Chronyn käyttäminen (Suositellaan palvelimille)

Jos pyörität palvelinta tai tarvitset luotettavampaa ajan synkronointia, chrony on parempi valinta, ja se on erityisen hyvä seuraaviin tilanteisiin:

  • Järjestelmät, jotka eivät käy jatkuvasti (kannettavat tietokoneet, pöytäkoneet).
  • Palvelimet vaativat korkean tarkkuuden.
  • Järjestelmät, joilla on ajoittainen verkkoyhteys.
  • Klusteroiduissa ympäristöissä, joissa ajan yhtenäisyys on kriittistä.

Asenna ensin chrony (jos sitä ei ole jo asennettu):

sudo apt install chrony   [On Debian-based systems]
sudo dnf install chrony   [On RHEL-based systems]

Huomautus: Asentaminen chrony poistaa automaattisesti käytöstä systemd-timesyncd konfliktien estämiseksi.

Asennuksen jälkeen ota käyttöön, käynnistä ja tarkista synkronoinnin tila:

sudo systemctl enable --now chronyd
timedatectl status

Tarkista järjestelmäkellon synkronointitila

Käyttääksesi omia NTP-palvelimia oletuspalvelimien sijaan, sinun täytyy muokata Chrony-konfiguraatiotiedostoa.

sudo nano /etc/chrony/chrony.conf
OR
sudo nano /etc/chrony/sources.d/custom.sources

Lisää haluamasi NTP-palvelimet (voit saada luettelon NTP-palvelimista NTP Pool Projectista).

pool 0.pool.ntp.org iburst
pool 1.pool.ntp.org iburst
pool 2.pool.ntp.org iburst

Käynnistä chrony uudelleen muutosten jälkeen:

sudo systemctl restart chronyd

Tärkeitä huomioita NTP-synkronoinnista

  • Et voi käyttää useita NTP-toteutuksia samanaikaisesti, joten valitse joko systemd-timesyncd tai chrony.
  • systemd-timesyncd on pelkkä asiakasohjelman toteutus, eikä se voi tarjota aikaa muille järjestelmille.
  • chrony voi toimia sekä ajan asiakkaana että ajan palvelimena paikallisverkossasi.
  • Tuotantopalvelimille ja kriittiselle infrastruktuurille suositellaan yleisesti chrony-ohjelmaa systemd-timesyncd:n sijaan.
  • NTP vaatii UDP-portin 123 avoimeksi ulospäin suuntautuville yhteyksille.
Yhteenveto

Nämä ovat hyvin helppoja esimerkkejä tässä oppaassa, ja toivon, että ne ovat hyödyllisiä erilaisten Linux-järjestelmän kellojen ja aikavyöhykkeiden asettamisessa.

Lisätietoja tästä työkalusta saat siirtymällä timedatectl-komennon man-sivulle.

man timedatectl

Jos sinulla on jotain sanottavaa tästä artikkelista, voit vapaasti jättää kommentin lisätietojen lisäämiseksi.