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
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
3. Näyttääksesi kaikki saatavilla olevat aikavyöhykkeet, suorita alla oleva komento:
timedatectl list-timezones
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.*"
5. Asettaaksesi paikallisen aikavyöhykkeesi Linuxissa, käytämme alla esitetyllä tavalla set-timezone-vaihtoehtoa.
sudo timedatectl set-timezone "Asia/Kolkata"
timedatectl status
On aina suositeltavaa käyttää ja asettaa koordinoitu yleisaika, UTC.
sudo timedatectl set-timezone UTC
timedatectl status
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
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'
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 koordinoituun maailmanaikaan (UTC):
sudo timedatectl set-local-rtc 0
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
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.










