Seminár k operačným systémom: záverečné zadania

Spoločné vlastnosti

  • Termín odovzdania je 13. február 2014 od 14h v P7.
  • Vypracujte OBE zadania [toto nie je Programovací jazyk C, kde stačí vypracovať jedno zadanie]
  • Zadanie spokojne vzájomne konzultujte. Vypracovanie však musí byť samostatné a jednoznačné.
  • Plagiátorstvo a identický kód je trestaný hodnotením FX.
  • Ak využijete kusy kódu alebo rady z internetu, uveďte do zdrojového kódu odkaz na zdroj.
  • Zadanie bude obhájené individuálne a ústne v termín uvedený vyššie.
  • Zadanie musí implementovať celú požadovanú funkcionalitu. Vynechanie ktoréhokoľvek bodu má za následok zamietnutie zadania. Hodnotenie sa odvíja od spôsobu implementácie zadania a od odpovedí na kontrolné otázky zamerané na pochopenie vypracovania.

Zadanie k PowerShellu

Vytvorte sadu shell skriptov, ktoré realizujú zálohovanie ľubovoľného adresára na vzdialené úložisko v duchu nástroja rsync.

Zvoľte jeden vhodný typ vzdialeného úložiska, inšpiráciou môže byť:

  • HTTP upload
  • FTP
  • SCP

Každá záloha adresára nech je vo vzdialenom úložisku identifikovaná časovou značkou, ktorá je jednoznačná.

Požadované operácie

Nástroj nech podporuje nasledovné operácie:

  • odzálohovanie ľubovoľného adresára zadaného z parametra do úložiska

    Odporúča sa využiť niektorý z komprimačných nástrojov.

    Create-Backup C:\Users\novotnyr\Documents
    
  • výpis všetkých záloh na vzdialenom úložisku

    $> Get-Backup
    
        Zoznam zaloh:
        2011/10/10
        2011/12/1
        2012/1/2
    
  • obnovenie zálohy na základe zadanej časovej značky do zadaného adresára

    Restore-From-Backup 2011/10/10 C:\Users\rn\novotnyr\Document
    

Záloha musí byť obnovená do identického stavu, v akom sa nachádzala pri zálohovaní, čo platí pri obnove súborov do existujúceho adresára. Ak používateľ obnovuje do existujúceho adresára, vyžadujte od neho potvrdenie.

  • zistenie zoznamu rozdielnych súborov (pribudnutých, odbudnutých, zmenených) medzi dvoma zálohami.

    Compare-Backups 2011/10/10 2012/1/2
        + index.html
        + wiki/wiki.html
        - chata.jpg
        - ozierka.jpg
        # changelog
        # zoznamuloh.jpg
    

Odporúčania

  • Jedno z riešení odošle na server spolu s komprimovaným adresárom aj súbor obsahujúci cesty pre každý zo zoznamu súborov.
  • Skúste použiť HTTP upload, pričom na strane servera vytvorte jednoduchý PHP skript a na strane shellskriptu využite triedu System.Net.WebClient a jej metódy Upload***.

Zadanie k shell scriptingu

Homebrew je správca balíčkov pre operačný systém Mac OS X. Uľahčuje inštaláciu mnohých nástrojov, ktoré nie sú súčasťou štandardného obchodu s aplikáciami Apple Store.

Vytvorte jeho jednoduchú analógiu s názvom kuchti s použitím nástrojov Linuxu.

Recepty

Inštalácia balíčka, ktorý zodpovedá konkrétnej aplikácii, sa riadi receptom, čo je štandardný shell skript. Spustením receptu sa vykoná postupnosť akcií, ktorej výsledkom je nainštalovaná aplikácia.

Každý recept je jednoznačne identifikovaný názvom skupiny a názvom aplikácie, ktorá sa nainštaluje: napríklad org.apache.tomcat:tomcat8.

Popri tom recept obsahuje:

  • odkaz na domovskú stránku aplikácie
  • stručný popis receptu (cca 1 veta)
  • funkciu, ktorou sa aplikácia nainštaluje
  • funkciu, ktorou sa aplikácia odinštaluje

Recepty sú centrálne uložené na vzdialenom serveri, tzv. repozitári, dostupnom cez protokol HTTP.

Pomocou skriptu kuchti je možné stiahnuť príslušný recept a vykonať ho

Fiktívny príklad použitia receptu, ktorým sa nainštaluje Tomcat8:

novotnyr@s> KUCHTI_REPO = "http://s.ics.upjs.sk/~novotnyr/kuchti/repo"
novotnyr@s> kuchti install org.apache.tomcat:tomcat8

Požadované operácie

Balíčkovací manažér má podporovať nasledovné operácie:

  • nainštalovať recept podľa úplného názvu

    novotnyr@s> kuchti install org.apache.tomcat:tomcat8
    
  • vyhľadávať v názvoch receptov podľa podreťazca

    novotnyr@s> kuchti search tomcat
        Found: org.apache.tomcat:tomcat8            
        Found: org.apache.tomcat:tomcat7
        Found: org.apache.tomcat:tomcat6
    
  • pozrieť si stručný popis receptu

    novotnyr@s> kuchti info org.apache.tomcat:tomcat8
        Apache Tomcat is an open source software implementation of the Java Servlet and JavaServer Pages technologies. 
    
  • odinštalovať recept podľa úplného názvu

    novotnyr@s> kuchti uninstall org.apache.tomcat:tomcat8
    

Navrhnite vhodný formát repozitára (môžete použiť repozitár, ktorý si vytvoríte na serveri s.ics.upjs.sk a sprístupnite ho cez HTTP).

Požadované operácie

  • vyhnite sa využitiu bashismov, teda konštrukcií, ktoré fungujú len v bashi. Najlepšie je spúšťať skript pod shellom dash, ktorý je dostupný na serveri s.ics.upjs.sk.
  • alternatívne využite skript checkbashism (viď dokumentácia)
  • pri implementácii využite len nástroje z normy POSIX: ich zoznam možno nájsť v špecifikácii, pod bodom Utilities. Presnejšie, nie sú povolené skriptovacie jazyky ako napríklad perl, či python.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *