Miten saan Linuxin kellon automaattisesti oikeaan aikaan?

Red Hatissa asia hoidetaan siten, että /etc/rc.d/init.d/xntpd-skripti suorittaa ntpdate-komennon parametreilla

/usr/sbin/ntpdate -s -b -p 8 -u `cat /etc/ntp/step-tickers`
        

Tiedostossa /etc/ntp/step-tickers kerrotaan ne ntp-palvelimet, joiden kanssa kello halutaan synkata. Esim.

ntp1.eunet.fi
ntp2.eunet.fi
ntp3.eunet.fi
        

Jos ntp1.eunet.fi löytyy verkosta ja sieltä saadaan aika, kello synkataan siihen ja käynnistetään xntpd-palvelu. ntp2- ja ntp3-palvelimet ovat varalla, jos ntp1:stä ei saada haettua aikaa.

Itse xntpd voidaan kiinteillä yhteyksillä asettaa synkkaamaan aikansa verkon yli ISP:si aikapalvelimesta kirjoittamalla tiedostoon /etc/ntp.conf

server 1.1.1.1 # vaihda oikea ip-osoite ntp1.OMAISP.fi
server 2.2.2.2  # vaihda oikea ip-osoite ntp2.OMAISP.fi
server 3.3.3.3  # vaihda oikea ip-osoite ntp3.OMAISP.fi
        

Jos Internetiin ollaan yhteydessä puhelinverkon kautta, ei aikaa voida synkata jatkuvasti. Tällöin tiedostossa /etc/ntp.conf laitetaan xntpd-palvelu synkkaamaan aikansa systeemikelloon

server 127.127.1.0 # local clock
fudge  127.127.1.0 stratum 10
        

Jos xntpd:n käynnistyksessä tai ntpdate-komennon jälkeen omassa skriptissä (esim. /etc/ppp/ip-up.local) halutaan synkata myös PC:n reaaliaikakello tarkasti oikeaan aikaan, voidaan tuon perään lisätä komento

/sbin/hwclock --systohc --utc
        

Jokaisen kannattaa käyttää verkon kannalta lähellä olevaa aikapalvelinta, jollainen löytyykin useimmilta palveluntarjoajilta. Usein ainakin yksi löytyy nimellä ntp.OMAISP.fi. Varapalvelimina voi käyttää joitain muita kotimaisia julkisia NTP-palvelimia. Todennäköisesti nic.funet.fi suostuu jakamaan aikaa ainakin kaikille .fi -maan synkkaajille.