Kellaeg, kuupäev ja NTP teenus


Vaata täpsemalt: Arvuti kellaaeg, NTP sissejuhatus, NTP protokoll, Ubuntu Time, Time Synchronisation with NTP, NTP - How does it work

 

Alguseks installime kellaaja sünkroniseerimise paketti.

# sudo apt-get install ntpdate

Arvuti emaplaadil "BIOS"-es töötab kell mikroskeemis mis toitub batareist ja ei karda voolu väljalülitamist. Seda "BIOS" kella nimetatakse hardware(HW) clock-iks. HW clocki andmed loetakse linuxi buutimisel süsteemi. Edasi kellad toimivad asünkroonselt.

Ajavööndi (timezone) pannakse paika failis /etc/timezone. Meie kooli asukoha puhul seal peaks olema.

root@ubu:~# cat /etc/timezone
Europe/Tallinn

Systeemi aega ja kuupäeva saab väljastada erinevalt. Käsu parameetrid pannakse paika erinevate võtmetega. Seda saab teha käsuga:

# date

Aega ja kuupäeva saab muuta käsuga:

# date KKPPTTMM

Kus KK on kuu, PP on kuupäev, TT on tund ja MM minutid

Kuna linuxe töö jooksul BIOS-e kell ja OP süsteemi kellad jooksevad lahku. Siis tuleks perioodiliselt need kellad kokkuviia
Süsteemi aja üleviimiseks "BIOS"-'sse (system to hardware) tuleks kasutada käsku:

# ntpdate --systohw

"BIOS"-e aja üleviimiseks OP süsteemi (hardware to system) tuleks kasutada käsku:

# ntpdate --hwtosys

Ja kuna mõlemad kellad ujuvad reaalajast minema tuleks linux süsteemi kell perioodiliselt syncroniseerida mingi välis serveriga.
NB! Selleks et parandada kella täpsust server millega synkroniseeritakse peab olema teie regioonis või läheduses.
Selleks on kaks meetodit perioodiliselt käivitada käsk ntpdate või käivitada ntp teenus(deemon).
ntpdate saab käivitada käsureast määrates parameetrina ntp serveri kust me pärime aega.

root@ubu:~# ntpdate ntp.ubuntu.com
2 Nov 15:41:15 ntpdate[1817]: adjust time server 91.189.94.4 offset 0.114632 sec

Lisa info päringu kulgemise kohta saame kasutades lisavõtit

root@ubu:~# ntpdate -d ntp.ubuntu.com
2 Nov 15:39:28 ntpdate[1773]: ntpdate 4.2.6p2@1.2194 Fri Sep 2 18:37:16 UTC 2011 (1)
Looking for host ntp.ubuntu.com and service ntp
host found : europium.canonical.com
transmit(91.189.94.4)
receive(91.189.94.4)
transmit(91.189.94.4)
receive(91.189.94.4)
transmit(91.189.94.4)
receive(91.189.94.4)
transmit(91.189.94.4)
receive(91.189.94.4)
transmit(91.189.94.4)
server 91.189.94.4, port 123
stratum 2, precision -20, leap 00, trust 000
refid [91.189.94.4], delay 0.06520, dispersion 0.00037
transmitted 4, in filter 4
reference time: d25bc0d4.1b20b68f Wed, Nov 2 2011 15:15:00.105
originate timestamp: d25bc696.5cb0173e Wed, Nov 2 2011 15:39:34.362
transmit timestamp: d25bc696.4ef2a9b3 Wed, Nov 2 2011 15:39:34.308
filter delay: 0.07610 0.07176 0.06520 0.07083
0.00000 0.00000 0.00000 0.00000
filter offset: 0.032027 0.031864 0.030965 0.031035
0.000000 0.000000 0.000000 0.000000
delay 0.06520, dispersion 0.00037
offset 0.030965

2 Nov 15:39:36 ntpdate[1773]: adjust time server 91.189.94.4 offset 0.030965 sec

Selleks et perioodiliselt sünkroniseerida aega serveriga tuleks see käsk paigutada crontab-i. Olles "root" õigustes:

# crontab -e

Täpsustame kus asub ntpdate programm

# which ntpdate
/usr/sbin/ntpdate

Ja lisame sinna ülesande mis iga tunni alguses sünkroniseeriks aega:

0 * * * * /usr/sbin/ntpdate ntp.ubuntu.com

Teine võimalus on luua fail /etc/cron.daily/ntpdate ja muuta faili õigused:

# sudo touch /etc/cron.hourly/ntpdate
# sudo chmod 755 /etc/cron.hourly/ntpdate

ja paigutada sinna käsk

/usr/sbin/ntpdate ntp.ubuntu.com