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
bash
i. Najlepšie je spúšťať skript pod shellomdash
, ktorý je dostupný na serveris.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
, čipython
.