Termíny obhajob sú
- piatok, 29. 1. 2021 od 17:00
- pondelok 1. 2. 2021 od 17:00
Obhajoby sa uskutočnia cez platformu Teams. Na vybraný termín obhajoby sa prihláste cez AIS2.
Vypracujte obe zadania.
- jedno zadanie vypracujte v PowerShelli.
- druhé zadanie vypracujte v unixovskom shelli.
Zadanie musí implementovať celú požadovanú funkcionalitu. Vynechanie ktoréhokoľvek bodu má za následok zamietnutie zadania a hodnotenie FX.
Hodnotenie sa odvíja od spôsobu implementácie zadania a od odpovedí na kontrolné otázky zamerané na pochopenie vypracovania.
Zadanie spokojne vzájomne konzultujte. Vypracovanie však musí byť samostatné a jednoznačné.
Plagiátorstvo a identický kód je trestaný okamžitým hodnotením FX. Ak využijete kusy kódu alebo rady z internetu, ste povinní uviesť do zdrojového kódu odkaz na zdroj (URL blogu, odkaz na StackOverflow a pod.) V opačnom prípade je zadanie zamietnuté ako plagiát.
Zadanie bude obhájené individuálne a ústne v termíny uvedené vyššie.
Redakčný systém shellpress
Firma ShellPress si objednala redakčný systém s názvom shellpress
, ktorý musí byť – z neznámeho dôvodu – implementovaný v shelli.
Články v redakčnom systéme sú písané vo formáte MarkDown, s drobnými obmenami (viď nižšie). Systém shellpress
prevedie články do formátu HTML a vygeneruje niekoľko dodatočných obslužných stránok.
Požiadavky
Vstupné súbory
shellpress
pracuje nad adresárom s článkami, v ktorom sa nachádza niekoľko súborov s príponou .markdown
.
Každý súbor obsahuje:
- názov článku uvedený ako prvý markdownovský nadpis prvej úrovne
- dátum vzniku uvedený ako dátum poslednej modifikácie súboru (linuxový atribút
mtime
).
Ukážkový súbor about.markdown
# Hamlet
Hamlet (angl. The Tragedy of Hamlet, Prince of Denmark, dosl.
Tragédia o Hamletovi, princovi dánskom) je nájznámejšou a najčastejšie
citovanou divadelnou hrou anglického dramatika Williama Shakespearea.
Hamlet patrí medzi najinscenovanejšie hry vo všetkých krajinách západnej
kultúry a taktiež patrí medzi najprekladanejšie literárne diela na svete.
Okrem iného je považovaný za akúsi skúšku ohňom pre vyspelosť herca.
Zrejme najznámejšou scénou z hry je Hamletov monológ o zmysle života
z tretieho dejstva, začínajúci otázkou „Byť, a či nebyť?“
Vygenerovanie HTML súborov
Nasledovný príkaz vygeneruje HTML súbory pre všetky články v adresári s článkami. HTML súbory nech sa uložia do adresára site
v adresári s článkami.
Publish-Portal [-Statistics] [-Destination cieľ] [súbor.markdown...]
Portál vygeneruje HTML súbory pre články zadané v parametri. Nasledovný príkaz vygeneruje HTML súbory pre vybrané články:
Publish-Portal intro.markdown about.markdown test.markdown
Ak nie je zadaný žiaden súbor, vygenerujú sa všetky súbory s článkami v adresári.
Okrem toho sa vygeneruje stránka index.html
so zoznamom všetkých článkov na portáli. Každá položka zoznamu nech obsahuje názov článku (z prvého nadpisu), dátum zverejnenia a hypertextový odkaz na text článku.
Štatistické informácie
Parameter -Statistics
zapne generovanie HTML súboru so štatistickými informáciami, kde je nutné uviesť:
- počet článkov
- počet slov vo všetkých článkoch
Zverejnenie portálu
Parameter -Destination
určí cieľ, kde sa má portál vypublikovať. Implementujte kopírovanie na vzdialený server ľubovoľným protokolom (HTTP, FTP a pod.).
Technické poznámky
- na generovanie HTML súborov použite nástroj
pandoc
Sumárne informácie o stroji
Zadanie
Vytvorte manažment sumárnej informácie o aktuálnom stroji. V sumárnej informácii uveďte nasledovné informácie.
- Aktuálny dátum a čas v ISO formáte
- Názov aktuálneho stroja
- Používanú distribúciu Linuxu
- Verziu nainštalovaného Linuxu
- MAC adresy sieťových adaptérov
- IP adresu v aktuálne pripojenej sieti
- Zoznam nainštalovaných balíčkov
Podporte nasledovné funkcionality:
techsummary -s <nazovsuboru.json>
— uloží sumár funkcionality ako JSON do súboru.techsummary -s
— vypíše sumár ako JSON na štandardný výstup
Vypracujte mechanizmus, ktorým je možné porovnať dva súbory so sumárnou informáciou a zistiť rozdiely medzi nimi. Cieľom je zistiť, čo sa zmenilo v sumárnej informácii medzi dvoma stavmi stroja, prípadne porovnať konfigurácie dvoch strojoch na základe ich sumárnych informácií.
techsummary -c <nazov-prveho-stavoveho-suboru> <nazov-druheho-stavoveho-suboru>
Technické poznámky
- Zadanie v shelli demonštrujte na serveri
student.ics.upjs.sk
alebo na vlastnej inštalácii Linuxu. - Zoznam nainštalovaných balíčkov získajte spracovaním výstupu príslušného správcu balíčkov (napr.
apt
na debianovských inštaláciách). - V zadaní použite len nástroje vymenované v norme POSIX. Výnimkou sú nástroje pre prácu so sieťovými adresami (napr.
ip addr
aleboifconfig
.) - Zadanie skontrolujte nástrojom
shellcheck
dostupnom buď online alebo na serveristudent.ics.upjs.sk
. - 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 serveris.ics.upjs.sk
. alternatívne využite skriptcheckbashism
(viď dokumentácia)