Jde o program, který produkuje statistiky o logování uživatelů na terminály.
Máme soubor, ve kterém jsou binárně uložená data o logování uživatelů. Jméno tohoto souboru je uložené v proměnné UTMP. Protože práce s binárním souborem je obtížná, máme k dispozici program extract, který dokáže převézt bin. data na textová.
Program extract vezme jako první parametr jméno bin. souboru, druhý parametr je jméno text. souboru, kam se ten binární přeloží (nebo může extract fungovat tak, že se mu na std. vstup pošle bin. soubor a vystupem je text - to jsme si mohli zvolit).
V přeloženém souboru je potom na každé řádce informace o tom, kdy se který uživatel uživatel kam zalogoval. Formát přeloženého souboru:
tty(terminál):user:datum a čas (formát data a časujsme si opět mohli zvolit sami).
Řádek, který obsahuje všechny tři informace znamená, že se daný uživatel zalogoval. Řádek, který neobsahuje jméno uživatele znamená, že se uživatel, který byl na daném terminálu odlogoval. Řádek, který má místo terminálu vlnku znamená, že celá mašina havarovala (shutdown) a tedy všichni uživatelé se odlogovali.
Cílem bylo napsat program utmpstat, který pracuje ve třech režimech:
1. utmpstat -x
Program "občerství" binární soubor, aby zůstal prázdný. Vezme bin. data, přeloží je do textové podoby a někam si je uloží. Pokud přijde na to, že nastaly nějaké problémy, ohlásí je správci. Vždy se pošle max. jedna zpráva na jedno spuštění utmpstat -x a to jen pokud nastaly problémy.
Problémem může být třeba to, že nějaký uživatel se nalogoval na terminál, který už je obsazený. To znamená, že chybí údaj o odlogování min. uživatele. V tom případě je potřeba dopsat údaj o odlogování tohoto uživatele do těch textových dat.
Jiný problém - v tabulce je údaj o odlogování uživatele, který nebyl zalogovaný. V tom případě se tento záznam ignoruje.
2. utmpstat -u user_spec date_from date_to
Vypíše údaje o uživatelích, kteří byli zalogování v intervalu dní [date_from, date_to]. Parametr user buď regexp nebo wildcard, to jsme si mohli zvolit. Pro tyto uživatele vypíše statistiky o nalogovaném času, tj. počet session (počet přihlášení) a jak dlouho byli celkem zalogovaní. Pokud byl uživatel přihlášený na více terminálů, tak se tyto časy nesčítají.
3. utmpstat -s date_from date_to
Vypíše údaje o vytíženosti stroje. Tj. něco jako
Kód: Vybrat vše
5% času bylo přihlášeno 6 lidí
20% času bylo přihlášeno 0 lidí
30% času bylo přihlášeno 8 lidí
10% času bylo přihlášeno 15 lidí
28% času bylo přihlášeno 9 lidí
7% času bylo přihlášeno 3 lidí
Tolik k zadání. Psalo nás to 24, 4 neodevzdali, 3 vyhodil po opravení písemek, pěti lidem to dal bez ptaní, no a my ostatní (12 lidí) si s ním půjdeme popovídat....
[/list]