Stránka s nějakými příklady ke cvičením ze základů Unixu a TCP/IP

  1. Quota system
    Máte dva konfigurační soubory - user.quota a group.quota. Soubory obsahují řádky ve formátu:
    <jmeno uzivatele (resp. jmeno(!) skupiny)><mezera><cislo>
    Číslo je limit v kilobajtech, které smí uživatel zabírat ve svem domovském adresáři včetne podadresářů.

    Pokud je uživatel uveden v souboru user.quota, je jeho limit cislo uvedene tam. Pokud neni, je potreba zjistit, do jake primarni skupiny patri a zjistit, jestli ma limit ta - pokud ano, limit uzivatele je cislo uvedene jako limit prislusne skupiny.

    Pokud uzivatel ani jeho skupina limit nemá - pak prostě limit nemá.

    Napište program, který pro všechny uživatele jistí, zda překračují limit. Pokud uživatel limit překročí, pošlete mu dopis. Pokud překročení trvá déle než 7 dní, neposílejte dopis uživateli, ale správci.

  2. NSLOOKUP via MAIL
    Program má zpracovat e-mail obsahující v textu sekci začínající klíčovým slovem nslookup a končící slovem exit tak, že obsah této sekce předá programu nslookup a výsledek odešle zpět odesilateli zprávy.
    Z předávaných řádků je potřeba odstranit veškerá případná přesměrování do souboru (příkaz se má provést, ale bez přesměrování) a je potřeba odstranit řádek obsahující příkaz type.
    Program je nutno navrhnout s ohledem na to, že v budoucnosti bychom třeba chtěli mít ve zprávě i jiné sekce, uvozené jiným startovacím slovem (ale končící vždy exit), jejichž obsah bude zpracováván jiným postupem (programem).

  3. Listserver
    Program umožňuje uživatelům přihlašování se to diskusních skupin. Uživatelé diskusní skupiny <jméno> jsou (přesněji řečeno, jejich e-mail adresy) v souboru <jméno> - co řádek to jedna adresa.
    Program umí zpracovávat příkazy sloužící pro přidání resp. odebrání odesilatele dopisu ze specifikovaného seznamu.
    Některé diskusní listy mohou být prohlášený za uzavřené, pak není uživatel přidán/odebrán automaticky, místo toho je jeho požadavek forvardován na adresu správce listu (každý list může mít jineého správce).
    Formát konfiguračního souboru(-ů) je textový, ale jinak dle vašeho vlastního návrhu a uvážení.
    Program musí správně reagovat na situace, kdy se uživatel snaží přidat podruhé nebo kdy se snaží odstranit neexistující uživatel a odesilatele informovat o provedených (neprovedených) akcích.
    Pozor, soubory musí obsahovat "holé" e-mail adresy, zatímco adresy ve From: mohou být složitější. Počítejte, že From: V obou případech je třeba odstranit z "holé" adresy případné úvodní a závěrečné mezery

  4. WWW Statistika
    Máte k dispozici jednu HTML stránku obsahující (mimo jiné) odkazy na další WWW servery. Odkazy v rámci stránky, které nás zajímají mají zásadně tvar:
    <A HREF="http://server-address[:cislo_portu][/cokoliv]"
    Z této stránky vypreparujte seznam serverů, na které se odkazuje. Tak, kde součástí URL není ":číslo_portu", uložte default hodnotu :80. Servery jsou různé, pokud mají různou adresu serveru nebo číslo portu. Tento seznam je pomocný a jeho obsah nemusí být zachován
    Máte k dispozici program "socket adresa_serveru cislo_portu", který spustíte pro každý řádek seznamu. Na jeho vstup vždy předáváte data v následujícím formátu ([CRLF} označuje prázdný řádek):
    HEAD / HTTP/1.0
    Host: adresa_serveru
    [CRLF]
    Na výstupu obdržíte (mimo jiné) Ŕádku:
    Server: oznaceni_software další_údaje
    Cílem je vypracovat statistiku, kolikrát byl použit ten-který software (podle vráceného označení - identifikace) jako WWW server.
    Pokud program "socket" nevydá výsledek ve zvoleném časovém limitu, má být ukončen (zasláním signálu SIGINT, -2). Adresy serverů, které neodpoví nebo jejichž odpověď neobsahuje příslušný řádek je potřeba "přendat" do seznamu neodpovídajících serverů.
    Program by měl být napsán tak, aby bylo možno přerušit jeho běh a spustit jej znovu aniž by kontaktoval znovu všechny servery.
    Bylo by vhodné program napsat tak, aby kontaktoval několik serverů současně (několik programů "socket" spuštěných současně" - zároveň jich však nesmí současně běžet více než nastavený počet.

  5. Kalkulacka
    Zkrácene: napiste 'expr' co umí ctyri základní operace vcetne priorit a závorkovani, kdyz máte k dispozici pouze systemový expr, který umi pouze ctyri základní operace a to výhradne jen se dvema parametry.

    Podrobne: v systemu máte k dispozici príkaz 'expr', který se volá jako
    expr Z1 OP Z2.
    Tento prikaz provede se dvema celými cisly Z1 a Z2 matematickou operaci OP (kde op je '+', '-', '*' nebo '/') a výsledek, kterým je zase celé císlo, vypíse na standardní výstup.
    Za pomoci tohoto príkazu napiste script, který bude umet vyhodnocovat výrazy tvorené více operandy a operátory, pricemz bude zvládat správne priority operátoru ('*' a '/' pred '+' a '-') a bude umet vyhodnocovat závorky (i vnorene). Presnou syntaxi zapisu vstupujícího výrazu pro script si muzete zvolit, ocekávam vsak nejakou variantu "obvyklého zapisu" (ne tedy treba reverzní polskou notaci).

-------------------------- Nekladu si žádné zvláštní ambice, co se vzhledu a úpravy této stránky týče.
-------------------------
Powered by FreeBSD Náměty a tipy, co mi kde nefunguje a tak podobně prijímá dan@obluda.cz.

© Dan Lukeš, 1999, 2000, 2007

Poslední změna: Monday, 23-May-2000 15:00 CEST www.freebsd.cz - FreeBSD software site www.apache.org - Apache  software site