CLOCK(1) | General Commands Manual | CLOCK(1) |
hwclock - a hardveróra (Real Time Clock) lekérdezése és beállítása
hwclock --show [ --utc ] [ --test ] [ --debug ]
hwclock --set --date=dátum [ --utc ] [ --test ] [ --debug]
hwclock --systohc [ --utc ] [ --test ] [ --debug ]
hwclock --hctosys [ --utc ] [ --test ] [ --debug ]
hwclock --adjust [ --utc ] [ --test ] [ --debug ]
hwclock --version [ --debug ]
Az opciókat egyértelmű rövidítéssel is alkalmazhatjuk.
A "clock" programmal való kompatibilitás érdekében használhatók az -r, -w, -s, -a, -v, -u, és -D opciók is.
A hwclock egy eszköz a Hardverórához. A segítségével ki lehet íratni az aktuális időt, be lehet állítani a Hardverórát egy megadott időhöz vagy a Rendszerórához, vagy be lehet állítani a Rendszerórát a Hardverórához.
A hwclock programot rendszeresen futtathatjuk, hogy kiegyenlítsük azt az időeltérést, amit a magára hagyott rendszer létrehoz.
Az alábbiak közül pontosan 1 opciót kell megadni a hwclock programnak, attól függően, hogy milyen funkciót szeretnénk.
hwclock --set --date="11/27/98 18:45:00"
A következő opciókat a legtöbb funkció mellett használhatjuk.
Figyelem ! Ha nem adod meg az --utc opciót, vagy fordítva, megadod, amikor nem kellene, mindkét esetben összezavarodik a Hardveróra beállítása vagy a lekérdezés.
A Hardveróra : Ez egy olyan óra, ami bármely programtól függetlenül fut, még akkor is, ha a gép ki van kapcsolva. Az ISA szabvány részeként van meghatározva. Egy vezérlő program ki tudja ezt az órát olvasni, vagy be tudja állítani. Lehetséges az 1 másodperces impulzusok kezdetének érzékelése, így az órának látszólag végtelen lehet a pontossága.
Ezt az órát nevezik hardverórának, 'real time clock'-nak, 'RTC'-nek, valós idejű órának, BIOS órának, vagy CMOS órának is.
A Rendszeróra : Ez az az idő, amit a Linux kernelen belüli óra mutatni tud, és az ISA időzítő megszakítása vezérli. Csak akkor van értelmezve, ha a Linux fut. A Rendszeridő az 1970. január 1. 00:00:00 óta eltelt időt tartalmazza másodpercekben. Ennek ellenére a Rendszeridő nem egész szám, így a pontossága tetszőlegesen javítható.
A Rendszeróra tartalmazza azt az időt, ami fontos számunkra. A Hardveróra alapvető feladata bármely rendszerben az, hogy az óra akkor is fusson, amikor a gép ki van kapcsolva. Amikor elindul a Linux rendszer, beállítja a Rendszerórát a Hardverórához, így a Hardverórát ezután nem használjuk. Megjegyezzük, hogy a DOS operációs rendszerekben (illetve az arra épülő egyéb rendszerekben) - amihez az ISA tervezve lett - a Hardveróra az egyetlen valós idejű óra.
Fontos, hogy a date(1L) használatával ne okozzunk időugrást a Rendszerórában, amikor a rendszer fut.
Ezzel szemben a Hardverórát tetszőlegesen lehet állítani, mialatt a rendszer fut. Mint programozó, használhatod az adjtimex(8) programot is a Rendszeróra beállításához.
A Hardveróra általában nem túl pontos. Azonban a pontatlanság nagyrészt jól kezelhető, mert az óra azonos mértékű időt siet vagy késik minden nap. Ezt rendszeres időeltérésnek nevezhetjük. A hwclock program 'adjust' funkciója teszi lehetővé azt, hogy rendszeres kiigazítást végezzünk ennek a rendszeres időeltérésnek a kiküszöbölésére.
Röviden : A hwclock a /etc/adjtime fájlban tárol néhány információt, ami az óra pontosításához szükséges.
Tegyük fel kiindulásként, hogy nincs 'adjtime' fájlunk. Ekkor kiadhatjuk a hwclock --set --date=... parancsot, hogy a Hardverórát beállítsuk a megadott időhöz. A hwclock program létrehozza az 'adjtime' fájlt és beleírja az aktuális időt. Ez egyúttal az óra beállításának az utolsó ideje is lesz. Tegyük fel, hogy mondjuk 5 nap alatt az óra 10 másodpercet siet, így újból kiadjuk a hwclock --set --date=... parancsot, hogy visszaállítsuk a 10 másodpercet. A hwclock program frissíti az 'adjtime' fájlt, beleírja az utolsó órabeállítás időpontját és rögzíti benne, hogy az óra napi 2 másodpercet siet. 24 óra elteltével újból kiadhatjuk a hwclock --adjust parancsot. A hwclock program megnézi az 'adjtime' fájlt, látja benne, hogy az óránk napi 2 másodpercet siet, és most már éppen eltelt egy nap. Igy kivon 2 másodpercet a Hardverórából. Rögzíti a fájlban az aktuális időt, mint az utolsó beállítás időpontját.
Minden alkalommal, amikor beállítjuk az órát a --set opcióval, a hwclock újra kiszámolja a rendszeres idő-eltérés mértékét, figyelembe véve, hogy mikor volt utoljára pontosítva az óra, milyen idő-eltérés volt korábban kiszámolva és hogy jelenleg mennyivel tér el az óra.
Egy kis hiba az óra beállításába mindig becsúszik, amikor a hwclock programmal szeretnénk pontosítani az órát, így a hwclock nem hajtja végre azokat a beállításokat, amikor az eltérés kevesebb 1 másodpercnél.
Hasznos egy hwclock --adjust parancsot kiadni közvetlenül a hwclock --hctosys parancs előtt a rendszer indításakor, illetve akkor is, ha a 'cron' segítségével végeztetjük a beállítást.
Az '/etc/adjtime' fájl formátuma :
1. sor : 3 számból áll :
1) rendszeres idő-eltérés másodperc / nap mértékegységben, lebegőpontos, decimális kijelzéssel;
2) az utolsó beállítás ideje 1970. jan. 1. óta, másodpercekben, decimális egész szám;
3) nulla, a clock programmal való kompatibilitás miatt.
2. sor : 1 számból áll :
A legelső beállítás ideje másodpercben 1970. jan. 1. óta.
Használhatod a hwclock programhoz azt az 'adjtime' fájlt, amit előzőleg a clock programmal hoztál létre.
/etc/adjtime
adjtimex(8), date(1), gettimeofday(2), settimeofday(2), crontab(1)
A hwclock programot Bryan Henderson írta 1996 szeptemberében, Charles Hedrick, Rob Hooft, és Harald Koenig, a clock program íróinak munkája alapján. A program készítésének története nyomon követhető a forráskódban.
Gyulai Mihály <mgyulai@freemail.c3.hu>
23 September 1996 |