200 likes | 295 Views
Operációs rendszerek 2 5. alkalom - tar, find, cron, wget, ssh, diff. Windisch Gergely windisch.gergely@nik.uni-obuda.hu 2011-2012 2. félév. "Illően" viselkedő programok linuxra. Jó dolog, ha a programok ugyanúgy működnek részletes leírás: http://www.gnu.org/prep/standards/standards.html
E N D
Operációs rendszerek 25. alkalom - tar, find, cron, wget, ssh, diff Windisch Gergely windisch.gergely@nik.uni-obuda.hu 2011-2012 2. félév
"Illően" viselkedő programok linuxra • Jó dolog, ha a programok ugyanúgy működnek • részletes leírás: • http://www.gnu.org/prep/standards/standards.html • számunkra (shell scriptekhez) fontos dolgok • vezérlés bemenő paraméterekkel • paraméter nélküli indításkor help --version (-v), --help (-h) kapcsolók kezelése Windisch Gergely - Operációs rendszerek 2
alias • Egy parancshoz rendelhetünk másokat • parancs lehet bonyolult, hosszú stb. • Kicsit olyan, mint a shell script, csak egyszerűbb • Pl: mi mindig 'ls -cl' -t használunk, ezt aliasolhatjuk l -nek: • alias l='ls -cl' • Ezután l-t kiadva megjelenik a színezett részletes lista • Hasznos aliasok • alias dir='ls' (hasznosabban: alias dir='echo "Nem dos" && ls' • alias ..='cd ..' • alias ...='cd ../..' • .bashrc fájlban tárolva hosszútávon megmaradnak Windisch Gergely - Operációs rendszerek 2
sudo • Parancsok futtatása más nevében • tipikusan rootként • pl: • touch mintafajl • cp mintafajl /bin • permission denied • sudo cp mintafajl /bin • jelszó: a jelenlegi felhasználó jelszava • root jelszó nélkül futtathatunk root jogosultsággal parancsokat • vagyis nem kell odaadni a root jelszót senkinek • megszabható, hogy melyik user mit csinálhat • visudo • sudo /usr/sbin/visudo • http://aplawrence.com/Basics/sudo.html Windisch Gergely - Operációs rendszerek 2
Tömörítés - tar.gz • tar - csak csomagol, nem tömörít • gzipen, bzipen át kell küldeni ahhoz, hogy tömörödjön • Becsomagolás • tar -cvzf fajl.tar.gz * • c: comprress • v: verbose • z: gzip / j: bz2 • Kicsomagolás • tar -xvzf fajl.tar.gz • x: extract Windisch Gergely - Operációs rendszerek 2
Keresés - find • Fájlokat vagy könyvtárakat kereshetünk vele megadott kiindulási helytől lefelé • Nem csak keresni tud, a találatokon parancsokat képes végrehajtani • Szintaxis: • find <kezdeni_hol> <keresni_kiket> <csinálni_mit> • find . -name "*.jpg" -print • -print nélkül is működik bizonyos rendszereken • Segítség findről • http://www.hccfl.edu/pollock/Unix/FindCmd.htm • http://www.kingcomputerservices.com/unix_101/using_find_to_locate_files.htm Windisch Gergely - Operációs rendszerek 2
find • fontosabb kapcsolók • -name : fájl vagy könyvtár neve • -type : típus: f: fájl, d: könyvtár • -exec: parancs futtatása a fájlon • -exec • Parancs futtatása • -exec parancs {} \; • {}: ide jön az aktuális fájlnév • \; : szükséges, ez mondja hogy vége az execnek • További kapcsolók a man oldalon találhatóak • atime, mtime, size, user és hasonlók • zh-ra érdemes átnézni őket - melyiket hogyan használjuk Windisch Gergely - Operációs rendszerek 2
Feladat • Az aktuális könyvtár összes alkönyvtárában állítsa át úgy a könyvtárak (csak a könyvtárak!) jogosultságát, hogy a tulajdonos bármit csinálhasson vele, a csoport olvashassa a tartalmat, mindenki másnak semmilyen joga ne legyen Windisch Gergely - Operációs rendszerek 2
Feladat • Készítsen egy keres nevű shell scriptet, aminek átadható egy paraméter, ezt keresse meg a gyökérkönyvtárból indulva. Ha megvan, listázza ki a fájl adatait (ls -l)Szóljon, ha nincs paraméter. Windisch Gergely - Operációs rendszerek 2
Feladat megoldás • #!/bin/bashif [ "$#" -eq 1 ]thenfind . -type f -name "$1" -exec ls -l {} \;else echo ”Valami hiba van”fi Windisch Gergely - Operációs rendszerek 2
Feladat • Készítsen egy shell scriptet, aminek átadható paraméterként egy felhasználó és egy méret megabyteban. A program keresse meg a felhasználó összes állományát, amelyik nagyobb ennél a méretnél. • Kiegészítések • a script ellenőrizze, hogy létezik-e a felhasználó. • tömörítse be az állományt, ha egy hétnél régebben nyitották meg (atime) • törölje le, ha egy évnél régebben nyitották meg Windisch Gergely - Operációs rendszerek 2
cron • A cron egy időzítő program • adott parancsot, shell scriptet futtathatunk vele megadott időben, időközönként. • A cron a crontab nevű fájlból szedi a tudományát • Crontab sorok felépítése: • Perc Óra Nap(Hó) Hónap Nap(Hét) Feladat • A rendszerszintű crontabban (/etc/crontab) a feladat előtt meg van határozva, hogy melyik felhasználó nevében fusson az alkalmazás Windisch Gergely - Operációs rendszerek 2
crontab • Perc: óra perce: 00 - 59, * : minden perc • Óra: nap órája: 00:23, * : minden óra • Nap: hónap napja: 1-31 * : minden nap • Hónap: év hónapja: 1-12 * : minden hó • Nap: hét napja: 0-7 * : minden nap • 0: vasárnap (sun), 1: hétfő (mon) stb. • Feladat: a végrehajtandó parancs Windisch Gergely - Operációs rendszerek 2
crontab • Minden vasárnap este hatkor futtatandó parancs • 00 18 * * sun ~/parancs • Crontab szerkesztése • crontab -e • szerkesztés a vi editorral történik • Crontab megtekintése • crontab -l Windisch Gergely - Operációs rendszerek 2
Feladat • Készítsen egy időzítést, ami minden hétfőn, szerdán és pénteken 11:20-kor lefuttatja a /usr/sbin/logrotate programot Windisch Gergely - Operációs rendszerek 2
ssh • Távolról jelentkezhetünk be számítógépekre. • Olyasmi, mint a telnet, csak titkosított • linux alatt: ssh parancs • ssh gepcim • ugyanaz a user • ssh -l ujuser gepcim • masik user • Távoli program futtatása • ssh gepcim programnev Windisch Gergely - Operációs rendszerek 2
scp • távolról másolgathatunk titkosított csatornán • használat: • scp <fájlok> [<user@>]<gepnev>:<eleresiut> • scp fajl hallgato@10.4.3.215:~/ • fájlokhoz több név is megadható • Midnight Commanderrel tudunk kényelmes fájlátvitelt, menüben: shell link Windisch Gergely - Operációs rendszerek 2
wget • Funkciógazdag letöltőprogram • wget <url> • fontosabb opciók -c : folytatja, ha megállt a letöltés -i : fájlból veszi a letöltendőket -r : mindent letölt rekurzívan (index nélküli könyvtárak tartalmát leszedi) • man wget Windisch Gergely - Operációs rendszerek 2
Feladat • Készítsen egy shell scriptet, ami letölt egy megadott weboldalról származó képet és elmenti azt az aktuális dátumnak megfelelő néven (vagyis minden letöltéskor kérje le a dátumot, és azt adja meg névnek). • A kép lehet bármi, pl. ez: http://images.webcams.travel/webcam/1220430897.jpg • Oldja meg, hogy a script 3 percenként lefusson. Windisch Gergely - Operációs rendszerek 2
diff • Két fájl közötti különbséget állapít meg • pl: van egy forrásfájl • hello.c • és egy patch • hello.patch.c • patchba beleírunk, a különbséget elküldjük Windisch Gergely - Operációs rendszerek 2