Bashis ajatsooni, kuupäeva ja kella seadistamine

From ICO wiki
Revision as of 22:32, 1 December 2012 by Pniit (talk | contribs)
Jump to navigationJump to search

Priidu Niit A22 sügis 2012

POOLELI!

Sissejuhatus

Järgnev wiki artikkel tutvustab lähemalt kuidas Linux aega hoiab ja mida on vaja teha probleemide vältimiseks. Tavajuhtudel pole kasutajatel tarvis ajaseadeid seadistada, aga vahel võib seda siiski ette tulla. Sellisel juhul on hea teada, kuidas seda kõige mõistlikumalt teha.

Linux ja aeg

Nii nagu igal operatsioonisüsteemil, on ka Linuxil võimalik ära määratleda ajatsoon. Ajavööndid on vajalikud ja sellega määratakse ära see, et millises piirkonnas on teatud ajahetkel kellaaeg. Kui aga suhtleme kaugemate piirkondadega, nagu infotehnoloogias seda tihti ette tuleb, võivad tekkida probleemid. Sellisteks puhkudeks on kasutusele võetud universiaalaeg UT või UTC. Varem tuntud ka Greenwichi või GMT nime alla. Iga kohalik aeg määratakse kindlaks ajavööndiga. Kuigi geograafia lubab samaagse keskpäeva paikadel kuuluda samasse ajavööndisse, siis praktikas see nii ei ole. Osad riigid kasutavad säästvat ajaarvestuse, mis tähendab seda, et kellaaega muudetakse nii, et oleks rohkem päikesevalgust töö ajal (talveaeg ja suveaeg). Teised riigid seda aga ei kasuta. Ajavööndit on parem määrata asukoha järgi või öeldes erinevuse kohaliku ja universiaalaja vahel. Linuxil on ajavööndite koha oma pakett, mida on võimalik reeglite muutumisel värskendada. Administraatoril jääb üle vaid valida sobiv ajavööde. Ka iga tavakasutaja saab seda seadistada. See on vajalik, kund inimesed töötavad arvutitega eri riikides üle maailma. Iga personaalarvutil on ka riisrvarakell. See töötab tänu akule ka siis, kui arvuti on vooluvõrgust välja lülitatud. Riistvarakella saab seada BIOS- is häälestuskuval või ükskõik millises töötavas operatsioonisüsteemis.

Linuxi tuum jälgib aega riistvarakellast sõltumatult. Alglaadimisel võrdsustab Linux oma kella küll riistvarakellaga, aga pärst töötavad nad sõltumatult. Kuna riistvarakella vaatamine on keeruline ja aeglane protsess, hoiab Linux oma kella ise.

Tuuma kell ei tea ajavöönditest midagi. See näitab vaid universiaalaega, mis omakorda tõstab töökindlust. Iga protsess käsitleb ajavööndi teisendusi ise, kasutades ajavööndipaketi vahendeid.

Riistvarakell võib toimida nii universiaalaja kui ka kohaliku aja järgi. Üldjuhul on selleks siiski universiaalaeg, kuna siis pole vaja seadistada suve- või talveajale üleminekut. Küll aga näiteks MS-DOS, Windows ja OS/2 operatsioonisüsteemid eeldavad, et riitsvara kelle toimib kohaliku aja järgi. Linux võib käsitleda mõlemaid. Kui riistvarakelle käib kohaliku aja järgi, tuleb jälgida sesiooniaja muutumist.

Ajatsooni seaded

Linux Debian süsteemis määrab ajavööndi link faili /etc/localtime, kus kirjeldatakse täpselt ära kohalik ajavööde. Ajavöötme andmed salvestatakse kataloogis /usr/lib/zoneinfo. Erinevusi võib esineda teistes Linuxi varjantides.

Keskonnamuutuja TZ häälestamise teel saab kasutaja ajavööndit muuta. Kui häälestus puudub, võetakse kasutusele süsteemi ajavöönd.

Date käsuga saame teada ajatsooni. Näiteks MST on Mountain Standard Time

date
Fri Mar 29 21:07:39 MST 2002

Ajatsooni muutmine: Esiteks käivitada /etc/localtime

cat /etc/timezone
America/New_York

Muuta faili sisu nii, et muutuks ajatsoon.

vim /etc/timezone
America/Los_Angeles

Eksportida ajatsooni seaded käsurealt.

export TZ=America/Los_Angeles

Tulemus: New Yorki-i ajatsoon vahetati Los Angelese vastu.

Tarkvara ja universiaal kella seaded

Käsk date väljastab kellaaja,kuupäeva ja ajatsooni. Mitte sassi ajada käsuga time. Time käib protsesside kohta, date praeguse aja kohta.

Aega saab seadistada ainult juurkasutaja. Igal kasutajal võib olla küll erinev ajavöönd, aga kell on kõigile sama.

date
Sun Jul 13 21:53:41 EET DST 1997

Tulemus: Väljastatakse praegune aeg ja kuupäev. „EET DST” tähistab ajavööndit, mis on Ida-Euroopa sessiooniaeg.

Universiaalaja esitamine date –u käsuga.

date -u
Sun Jul 13 18:53:42 UTC 1997

Tulemus: Väljastatakse univesiaalaeg UTC.

Tarkvara kella seadistamine date käsuga.

date 07132157
Sun Jul 13 21:57:00 EET DST 1997

Tulemus: Tarkvarakellaks seatakse 21.57 13.juuli.

Saab ka teisiti. Ehks siis date –s käsuga.

date -s "1 Jan 2012"

Tulemus: Seab süsteemi kuupäevaks 1. Jaanuari 2012.

date -s 15:47:51

Tulemus: Seab süsteemi kellaajaks 15:47:51

Saab ka koos:

date -s "1 Jan 2012 15:47:51"

Kellaega saab esitada ka erivevates formaatides:

  • %H : tund
  • %M : minut

• %S : sekund • %D: kuupäeva formaat võrdne %m/%d/%y • %Z: ajatsoon • %j: mitmes päev aastas

date -u +"Time is %H:%M:%S on %D in %Z (%j day of the year)"

Tulemus: Väljastatakse kellaeg järgnevas formaadis: Time is 05:26:45 on 10/09/12 in UTC (283 day of the year)

Riistvara kella seaded

Tarkvara kell ei pruugi alati õige olla. Teda hoiab käigus taimeri perioodiline katkestus, mille genereerib arvuti riistvara. Kui töötab liiga palju protsesse, võib taimeri katkestus kaua aega võtta ja tarkvarakell võib taha jääda. Kuna riistvarakell käib ise, on see palju täpsem.

Riistvara kella on lihtne seadistada BIOS-is. See väldib probleeme, mida süsteemiaja muutmine võib tekitada. Kui BIOS-i kasutamine pole võimalik, saab uue aja seadistada hwclock käsuga. Kui mõni süsteemi osa hakkab tõrkuma, oleks mõistlik arvuti taaskäivitada.

hwclock --show
Tue Oct 9 01:16:34 2012 -0.653095 seconds

Tulemus: Kuvatakse riistvara kellaaeg.

Kui riistvara kell ja tarkvara kell näitavad erinevat aega, on neid võimalik väga lihtsate käskude abil samastada.

hwclock –systohc

Tulemus: Riistvara kell samastatakse tarkvara kellaga.

hwclock –hctosys

Tulemus: Tarkvara kell samastatakse riistvara kellaga.

Riistvara kella ja kuupäeva on võimalik samatu seadistada.

hwclock --set --date="1 Jan 2012 15:47:51"

Tulemus: Riistvara kella kellaajaks määratakse 15:47:51 ja kuupäevaks 1. Jaanuar 2012.

Automaatne kella uuendamine

Kui arvuti asub võrgus, saab ta oma kella automaatselt kontrollida. Näiteks võrreldes seda mõne teise arvuti või serveri kellaga. Üldjuhul on selleks server. Kui teine arvuti on täpse kellaajaga, hoiavad mõlemad arvutid õiget aega. Eelnimetatud ajakontrolli saab organiseerida rdate ja netdate käskude abil. Mõlemad kontrollivad teise arvuti aega. Netdate abil saab hallata mitut arvutit. Kui käivitada käsk deemoni cron abil, hoiab teie arvuti samasugust aega nagu teine arvuti.

Kokkuvõte

Kella peaks seadistama väga ettevaatlikult, sest mitmed Unixi süsteemid nõuavad, et kellad töötaksid õigesti. Näiteks deemon cron käivitab programme perioodiliselt. Kui te muudate kella, võib deemonil tekkida kõhklusi. Näiteks ühes vanemas Unixi süsteemis muutis keegi kella 10 aastat tulevikku ja cron üritas käivitada kõiki protsess kümne aasta kohta korraga. Õnneks uuemates versioonides esinevad cron versioonid lahendavad selle probleemi tavaliselt õigesti, kuid siiski tuleks olla ettevaatlik. Suured hüpped tagasi on tavaliselt ohtlikumad kui väiksed edasi.

Autor

Priidu Niit A22

Kasutatud kirjandus