Miten saan Linuxin kellon automaattisesti oikeaan aikaan?

Red Hatissa homma menee niin, että /etc/rc.d/init.d/xntpd scripti suorittaa ntpdate-komennon parametreilla

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

Tuossa /etc/ntp/step-tickers filetsussa kerrotaan ne ntp-palvelimet, jonka 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 potkaistaan xntpd daemon ylös. ntp2- ja ntp3-palvelimet ovat varalla, jos ntp1:stä ei aikaa saatu.

Itse xntpd voidaan kiinteillä yhteyksillä konffata synkkaamaan aikansa netin yli ISP:n aikapalvelimesta laittamalla /etc/ntp.conf tiedostoon

 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 ollaan dialup-yhteyden perässä, ei aikaa voida synkata koko aikaa. Tällöin /etc/ntp.conf fileessä laitetaan xntpd-palvellu 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 scriptissä (esim. /etc/ppp/ip-up.local) halutaan BIOS:in reaaliaikakello synkattua tarkasti oikeaan aikaan, voidaan tuon perään lisätä komento

/sbin/hwclock --systohc --utc
   

Itse kukin käyttäköön oman ISP:nsä tarjoamia NTP-aikapalvelimia. En tidä, montako ja minkä nimisiä kullakin on tarjota. Usein ainakin yksi löytyy nimellä ntp.OMAISP.fi. Varapalvelimina voi käyttää jotain muita kotimaisia julkisia NTP-palvelimia. Muistaakseni nic.funet.fi suostuu jakamaan aikaa ainakin kaikille .fi -maan synkkaajille.