YOU ARE DOWNLOADING DOCUMENT

Please tick the box to continue:

Transcript
Page 1: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 1/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Uvod u Linux

Verzija dokumenta : 0.73.8

Napomena : Moguće su pravopisne i gramatičke pogreške.Također je moguće i očekivano da će doćido izmjena pojedinih dijelova dokumenta, kao i dodavanja novih poglavlja, do trenutka izdavanja“stabilne” verzije 1.x.

Autor:Hrvoje Horvat

LinkedIn info

Open Source Osijek Info

Sadržaj

… (biti će automatski kreiran kasnije) …

Uvod

Dokument je izdan pod GPL v.2. licencom

Što znači GPL v.2. licenca za ovu knjigu ?

GPL je napisan tako da sačuva slobode korisnika. Svaki korisnik ove knjige ima pravo:

na korištenje u bilo koju svrhu,●

pravo na izradu kopija i●

pravo na proučavanje, mijenjanje i redistribuciju.●

U slučaju da knjigu mijenjate, nova knjiga mora sadržavati:

link na izvornu lokaciju knjige: https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux●

Popis autora izvorne knjige●

GNU GPL je, copyleft licenca, što znači da zahtjeva da sav softver (u ovom slučaju svi novi dokumenti)koji nastanu kao modifikacija ovog dokumenta, također garantiraju iste slobode što znači da morajubiti distribuirani pod istom licencom.

Page 2: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Predgovor

U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja da svapredavanja pretočimo u knjižicu ili skriptu koja će rasti i razvijati se sa svakim novim predavanjem. Pozavršetku svakog predavanja dodavana su i napredna poglavlja, koja nismo pokrili u samompredavanju ali smatram da će biti dobrodošla za one koji žele naučiti nešto više.

Za one koji tek ulaze u svijet Linuxa, napredna poglavlja mogu slobodno preskočiti, dok ne savladajuosnove. Nakon završetka zadnjeg predavanja, dodavati će se i nova poglavlja i popunjavati postojeća,sa što konkretnijim primjerima iz prakse u želji da ova za sada mala i skromna knjižica preraste u“Linux osnovno i napredno”.

Koje su prednosti Linuxa i drugih sustava otvorenog koda

Korištenjem Linuxa i drugih sustava otvorenog koda (engl. Open Source), u odnosu na sustavezatvorenog koda (koje često nazivamo komercijalnim programima ili sustavima [što ne mora bititočno]), dobivamo slijedeće prednosti :

Kvaliteta :●

Sve komponente Linuxa, počevši od Linux kernela (jezgre) do svih programa, kao i drugih “OpenSource” programa i sustava, razvijani su od strane stotina ili tisuća programera a testirane od stranestotina tisuća ili više programera i “običnih korisnika”. Svi uključeni u razvoj i testiranje (ovdjegovorimo, ovisno o programu, i o stotinama tisuća ljudi), kako je praksa pokazala, vrlo brzo(višestruko brže nego kod komercijalnog softvera) su uočavali greške i ispravljali ih ili radili napoboljšanjima, optimizacijama (pr. ubrzanjima) ili dodavanju novih funkcionalnosti. Sve navedenodrastično je povećalo kvalitetu.

Ovdje možemo citirati tvorca Linux kernela : Linus Torvalds : “Given enough eyeballs, all bugs areshallow”.Dakle ako dovoljno veliki broj ljudi gleda u određeni problem ili grešku (bug), svi problemi će vrlo brzobiti otkriveni (i riješeni).

Ako se već bavite razvojem programa, postavite si slijedeća pitanja :

Koliki postotak ukupnog vremena u razvoju svog programa ili sustava trošite na testiranje u širem●

smislu riječi ?.Koliko vremena planirate za dokumentaciju vašeg programa i sustava ?●

Sigurnost :●

Sigurnost je usko povezana sa paradigmama vezanim za kvalitetu jer kao što veliki broj programera ikorisnika koji razvijaju softver povećava kvalitetu, istovremeno otkriva i sigurnosne propuste iispravlja ih (u praksi puno brže od komercijalnih riješenja). Naime niti najveće korporacije nemaju natisuće zaposlenih programera i testera na svakom pojedinom softveru, a pošto je njihov izvorni kodskriven od javnosti nitko drugi im ne može puno pomoći - osim ukazati na problem kada se većpojavio i napravio štetu.

Ako se već bavite razvojem programa, postavite si slijedeća pitanja :

Page 3: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 3/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

koliki postotak vremena u razvoju svog programa ili sustava trošite na sigurnost :●

od faze dizajna,❍

preko implementacije do svih faza testiranja ?.❍

Fleksibilnost :●

Komercijalnim proizvođaćima programa i sustava u konačnici nije u interesu imati najbolji, najbrži,najsigurniji i najkvalitetniji program ili sustav sa svim funkcionalnostima koje neki korisnici ili grupekorisnika trebaju jer “za to treba imati puno resursa, od programera, testera, hardvera , … ”. Jedan odproblema u razvoju je i fleksibilnost i koliko je vremena potrebno uložiti u razvoj, a da bi program i/ilisustav bio stvarno fleksibilan. Iza svega navdenog zapravo stoje pitanja koja su specifična kod razvojasustava zatvorenog kôda tj. proizvođaća:

kako će vam nametnuti potrebu da plaćate nove verzije programa i sustava ako vam je postojeći●

dobar ili čak odličan,kako će vas natjerati da kupujete nadogradnje zbog novih funkcionalnosti, ali i sigurnosnih●

nadogradnji ili popravaka nekih (njihovih) grešaka,kako će vas natjerati da kupite novi hardver (računalo) ako je postojeći ili novi program ili sustav brz●

i optimiziran.

S druge strane “Open Source” sustavi ne boluju od ovakvih (i drugih) stvari te je na vama odluka kadaćete primjerice mijenjati vaš hardver (računalo) jer budimo iskreni - nova verzija “Open Source”programa nije napravljena nabrzinu samo da se proda pa se kasnije ispravljaju (i često naplačuju)greške a vi ste besplatni tester nečijeg programa/sustava (koji plačate). Također, kod pisanja kôdaako vaš kod nije fleksibilan u širem smislu rijeći, često će vas netko već upozoriti na to i/ili ispravitivaš “loše” napisan kôd.

Ako se već bavite razvojem programa, postavite si slijedeća pitanja :

Koliko je program ili sustav koji razvijate fleksibilan i koliko pazite da kôd bude moguće ponovno●

iskoristiti (engl. Code reuse).

Interoperabilnost :●

“Open Source” programi i sustavi se u praksi barem pokušavaju držati standarda te ne uvode nekesvoje (izmišljene) formate datoteka, standarde, protokole i sl.. Stoga imate veću vjerojatnost da će“Open Source” program ili sustav koji vi koristite raditi u kombinaciji s “Open Source” programom isustavom koji koriste vaši klijenti ili netko drugi. Također je velika vjerojatnost ako pr. koristite nekimrežni protokol koji je pisan prema načelima open source-a, iz jednog izvora ili su dio jednog riješenjaili proizvoda, da će isti raditi s drugim riješenjima ili proizvodima.

Naime ovo je najviše slučaj kod raznih sustava, raznih protokola (pr. mrežnih protokola) i uređaja ali ikod programa i njihovih međusobno većinom namjerno ili ne nekompatibilnih formata datoteka.

Podrška :●

Suprotno mišljenju, podrška za “Open Source” programe i sustave postoji u istoj mjeri kao i zakomercijalne programe i sustave.

U praksi, podrška je višestruko bolja, kvalitetnija i uslužnija za “Open Source” programe i sustave.Zbog nekoliko činjenica:

Podršku za komercialne programe i sustave pruža vam tvrtka koja je razvila taj sustav a njeni●

Page 4: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

partneri zaduženi su samo za riješavanje određenih problema (kôd samog programa je i dalje uvlasništvu i dostupnosti samo tvrtke vlasnika ), pa ovdje često dolazi do razvlačenja odgovornosti (igubljenja vremena za vas kao korisnika njihovog programa/sustava): tvrtka vlasnikprograma/sustava ← → partnerska tvrtka

Za sve probleme koji traže angažman tvrtke vlasnika programa/sustava, pogotovo ako je to❍

inozemna tvrtka, bez obzira da li ima predstavništvo u vašoj zemlji, ćete se prema raznimstatistikama (i mom osobnom iskustvu) načekati a u dosta slučajeva, dobiti ćete riješenjeproblema koji ste prijavili uz cijeli niz novih problema .

Podršku za “Open Source” programe i sustave, uključujući mogućnost promijena samog kôda što●

uključuje : popravke grešaka, dodavanje novih funkcionalnosti, raznih optimizacija prema vašimželjama i sl., može vam odraditi lokalna tvrtka (iz vašeg grada/županije/države). Što je još bitnije tihlokalnih tvrtki može biti nekoliko, što dovodi do zdrave konkurencije, pa će se svi boriti da pružebolju i kvalitetniju uslugu za vas kao korisnika nekog “Open Source” programa i sustava (kojivjerojatno već koriste milijuni ljudi širom svijeta i za koji također postoji podrška od strane tisuća itisuća tvrtki širom svijeta).

Za sve “Open Source” programe i sustave podršku možete dobiti i od zajednice (engl.❍

community) koja je i razvila određeni program ili sustav ali vrlo često je iz te zajednice i izrasla ineka fondacija ili tvrtka kojoj/kojima također možete platiti još viši (i brži) nivo podrške.

Pitanje za one koji su i dalje skeptični prema podršci za “Open Source” i koji bi platili (i plačaju) “kolikogod treba” :

Da li ste platili komercijalnu podršku za neki “Open Source” program ili sustav i ostali nezadovoljniji uodnosu na “Close Source” komercijalne sustave za koje (već) plačate podršku ?

Ako i sami razvijate neki “close source” program ili sustav, Pitajte vaše krajnje korisnike (preko nekogposrednika), kakva je podrška za vaš program ili sustav ?

Troškovi :●

Troškovi “Open Source” programa i sustava su nekada i višestruko manji od troškova komercijalnihprograma i sustava :

Većina Linux operativnih sustava je besplatna ali kao što smo vidjeli, za većinu njih možete plaćati●

direktnu podršku (često zakladi [Fundation] ili tvrtci koja (uglavnom) stoji iza njih) ili naravnolokalnoj tvrtci. U slučaju da za kompletnu podršku plaćate lokalnu tvrtku, novac ostaje u vašemgradu/županiji/državi od poreza, prireza, plaća radnicima te tvrtke, …Za Linux-e za koje se plaća (pr. RedHat, SuSe , … ) cijena je puno manja od drugih komercijalnih●

operativnih sustava, a uz tu cijenu dobivate i određenu osnovnu podršku, koja je prema mnogima [imeni],puno bolja,brža i kvalitetnija. Osim toga možete nadoplatiti i za dodatnu podršku ilijednostavno kupiti samo Linux uz osnovnu podršku a za sve ostalo, podršku platiti lokalnoj tvrtci.Ostali programi su besplatni za osobnu i/ili komercijalnu upotrebu, za sve njih također možete●

plaćati podršku, po sličnom modelu kao i za Linux.Troškovi potencijalnog školovanja ljudi u vašoj tvrtci zbog prelaska na “Open Source” programe i●

sustave i cijelokupne migracije na “Open Source”: kada se sve zbroji, moguće je nekoliko scenarijauz određene varijacije:

Troškove školovanja i migracije plaćate ili odrađujete sami, početni troškovi su manji a dugoročni❍

troškovi su višestruko manjiTroškove školovanja i migracije plaćate (lokalnoj tvrtci), početni troškovi su isti ili približni a❍

dugoročni troškovi su višestruko manjiTroškove školovanja i migracije plaćate (lokalnoj i/ili inozemnoj tvrtci), početni troškovi su isti ili❍

zanemarivo veći a dugoročni troškovi su manji.

Page 5: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 5/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Lista nekih od Open Source programa i sustava, prema kategorijama, vidljiva je na našoj stranici:https://www.opensource-osijek.org/wordpress/najpoznatiji-projekti/

Tko sve koristi Linux i sustave otvorenog koda

Nakon, po nekima samo teorije, o prednostima upotrebe Linuxa i drugih sustava otvorenog koda,pogledajmo primjere upotrebe u praksi. Naime sve veći broj država i državnih agencija od SjedinjenihAmeričkih Država, preko Europe do Sjeverne Koreje sve više koristi Linux, kao i razne druge programei sustave bazirane na principima otvorenog koda. Ne zaboravimo i sve veći broj tvrtki: od najvećihkorporacija do malih tvrtki sa svega nekoliko zaposlenih.

Krenimo od upotrebe Linuxa na mjestima koja će vas možda i začuditi

Državne agencije i ministarstva :

Ministartvo obrane Sjedinjenih Američkih Država (U.S. Department of Defense):●

Koriste RedHat Linux, prema nekim izvorima ovdje je za RedHat Linux najveći broj instaliran❍

računala unutar jedne tvrtke ili institucijeMornarica Sjedinjenih Američkih Država : Flota nuklearnih podmornica (U.S. Navy Submarine Fleet):●

Poznato je da koriste Linux baziran na Red Hat Linuxu❍

Federalni sudovi (U.S. Federal Courts) u Sjedinjenim Američkim Državama●

Savezna uprava za civilno zrakoplovstvo (Federal Aviation Administration) Sjedinjenih Američkih●

DržavaFrancuski parlament:●

Koriste Ubunut Linux sa OpenOffice paketom, instalirano je ~1.100 računala❍

Španjolska (većina državnih institucija i agencija)●

Napravili su svoju distribuciju Linuxa, baziranu na Debian Linuxu, naziva : LinEx❍

Pošta Sjedinjenih Američkih Država (U.S. Postal Service):●

Svi poslužitelji su migrirani na Linux : preko 900 Clustera sa Linux poslužiteljima, širom države❍

Češka pošta :●

Koriste SuSe Linux sa 4.000 Poslužitelja i 12.000 računala❍

Njemačka : Grad Minhen, migrirao ~15.000 stolnih računala sa Microsoft Windows na Linux●

Nizozemski sustav za Ministarstvo unutarnjih poslova (Internet Research and Investigation Network●

(iRN)) :Koriste Ubuntu Linux na ~2.200 računala❍

Njemački nacionalni sustav za zapošljavanje (Bundesagentur für Arbeit)●

Koriste OpenSuSe Linux na ~13.000 računala❍

NASA (National Aeronautics and Space Administration), od poslužitelja i stolnih računala do drugih●

sustava (pr. Space Shuttle misija STS-83 je koristila Linux za kontrolu eksperimenata).Sustav napredne kontrole prometa u gradu San Francisco●

Japanski vlakovi tkzv “Bullet Trains” tj. “Shinkansen” uz sustav kontrole i nadzora vlakova i cijelog●

sustava, koristi Linux

Školstvo :

Brazilsko školstvo:●

Koriste Linux na : 520.000 Računala u 50.000 škola širom države❍

Njemačka Sveučilišta :●

Koriste SuSe Linux za poslužitelje i desktop računala u 33 sveučilišta, za 560.000 studenata❍

Savezna Država Indiana (SAD), školski sustav :●

Page 6: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Koriste Linux za 22.000+ studenata i učenika❍

Italija, regija Bolzano : školski sustav sa 16.000 studenata i učenika●

Makedonija : školski sustav●

Linux stolnih računala : 5.000 i 180.000 Ubuntu Thin Client računala❍

Rusija : cijeli školski sustav i sve državne institucije :●

Plan je nabavka ~700.000 stolnih računala i ~300.000 poslužitelja upogonjenih Linuxom i Open❍

Source programima, baziranih na Baikal CPU.Švicarska: pojedini kantonalni školski sustavi :●

Koriste Linux sa OpenOffice paketom : Ženeevski kanton : ~9.000 računala❍

…●

Neke od velikih tvrtki ili korporacija koje koriste Linux i OpenSource za poslovanje:

Google : na poslužiteljima i stolnim računalima●

IBM : na poslužiteljima i stolnim računalima●

Panasonic : na poslužiteljima i stolnim računalima●

Cisco : na poslužiteljima i stolnim računalima●

Amazon : za skoro svaku komponentu poslovnog sustava se koristi Linux, kako su i sami izjavili :●

“everything that happens in them is driven by Linux”Virgin America : sustav za zabavu unutar zrakoplova “in-flight entertainment system”●

Peugeot :●

Koriste: 20.000 Novell Desktop Linuxa i 2.500 SuSe Linux Enterprise Server❍

Wikipedia●

Burza u New York-u (New York Stock Exchange) :●

Koriste Red Hat Enterprise Linux❍

Londonska burza●

Toyota :●

Odjeli prodaje koriste Linux za oko 30. različitih sustava: od sustava za naručivanje dijelova,❍

garancije, popravke , ….Komunikacijski sustav i sustav elektroničke zabave unutar vozila (In-Vehicle-infotainment (IVI)❍

systems) koriste LinuxFacebook●

Twitter●

Siemens●

McDonalds●

Deutsche Bank●

Bank of America●

Bank of New York●

DreamWorks●

NTT Telekom grupa (Nippon Telegraph and Telephone Corporation) - vlasnik preko 30 telekom tvrtki●

širom svijetaMorgan Stanley, Goldman Sachs,●

…●

Osim navedenog i većina najjačih superračunala u svijetu koristi Linux.

Tko još (pametan) razvija programe i sustave otvorenog koda

Dobro, mnoge državne institucije i tvrtke sve više koriste programe i sustave otvorenog koda ali tkojoš (pametan) od tvrtki razvija ovakve sustave?.

Page 7: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 7/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Navesti ću samo nekoliko velikih tvrtki koje su najviše uložile u programe i sustave otvorenog koda:

IBM

Uložio je nekoliko milijardi američkih dolara u servise i programe bazirane na Linuxu, kroz Linux●

Technology Center koji uključuje 300+ stalno zaposlenih Linux programera.Donira 40 millijuna američkih dolara u Eclipse (http://www.eclipse.org) (12.5+ milijuna linija kôda).●

Ulaže u “Open Source Initiative” (http://opensource.org).●

Donira u razvoj “Java-base relational database management system” (RDBMS) Apache Derby●

(http://db.apache.org/derby).

SUN Microsystems

1990. razvija programski jezik Java koji 1995.g. predstavlja javnosti te 2007.g. licencira pod GPL●

licencom (6.5 milijuna linija koda).1999. kupuje njemačku tvrtku StarDivision za 73.5 milijuna američkih dolara i između ostaloga, s●

njom “StarOffice” kojeg kasnije Sun objavljuje kao OpenOffice pod LGPL i SISSL licencama (~10.milijuna linija koda).2005. je razvio i pokrenuo GlassFish (aplikacijski server) kao open source projekt.●

kasnije 2005 godine kupuju tvrtku “Storage Tek” za 4.1 milijarde US$ te 2008 objavljuje kôd “Sun●

Storage 7000 Unified Storage systems” koji je baza za razvoj ZFS-a koji je kombinacija datotečnogsustava i volume nanagera.2005. objavljuje izvorni kôd kernel i network dijela operativnog sustava Solaris,potom pokreće●

OpenSolaris s istim kodom pod CDDL licencom, kasnije uključuje i DTRACE, ZFS, Solaris Containers idruge tehnologije (2+ milijuna linija koda).2008. kupuje tvrtku MySQL AB sa MySQL bazom podataka za 1 milijardu američkih dolara. Kasnije●

izdaje MySQL pod GPL licencom.…●

Google

2005. kupuje tvrtku Android Inc. te s njom dobiva Android operativni sustav.●

2007. izdaje Android pod Apache 2.0 licencom (10+ milijuna linija koda).●

2008. razvija Google Chrome web preglednik te isti izdaje pod nazivom Chromium u open source●

(2+ milijuna linja koda).Razvija Chrome/Chromium OS.●

Razvija Google Web Toolkit (300.000+ linija koda).●

Google Summer of Code (GSoC) je godišnji događaj, prvi puta održan 2005. U njemu Google●

nagrađuje sa 5,000 američkih dolara (u 2013.) stotine studenata koji uspješno završe zadane opensource projekte do kraja događanja.

RedHat

Praktično živi od Open Source filozofije.●

U fiskalnoj godini 2012, ukupni prihodi su 1.13 milijardi američkih dolara.●

Red Hat Enterprise Linux (RHEL) je dostupan samo kroz pretplatu, koja uključuje pristup softveru●

(ISO image) i zakrpama te raznim nivoima tehničke podrške (ovisno o vrsti pretplate). Proizvod sesastoji većinom od programa koji se distribuiraju kroz open source licence.Cijeli kôd za sve programske pakete RedHat Linuxa je javno dostupan: ⇒ CentOS Linux koristi isti taj●

kôd za izradu svoje distribucije Linuxa.razvili su (i napisali) ~12% od cijelog Linux kernel kôda (prema broju linija koda), na kojem su●

bazirani svi Linuxi.

Page 8: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

JBoss (aplikacijski Server) (2+ milijuna linija koda), izdan pod LGPL licencom.●

Red Hat sponzorira Fedora projekt (community verziju Red Hat Enterprise Linux).●

Microsoft

Microsoft je na 21. mjestu po sudjelovanju u razvoju Linux kernela (~1% udjela, prema broju linija●

koda).Shvaća prednosti razvoja prema principima Open Source: http://opensource.mscommunity.hr●

:“Microsoft Hrvatska 5. lipnja 2013. organizira prvu Microsoft Open Source konferenciju u suradnji saSveučilištem u Zagrebu, koja je namijenjena upravo vama. Microsoft je kao tvrtka proširio svojufilozofiju i sve više pridonosi open source zajednicama na način da promiče developersku suradnjukako bi se lakše razvijala i održavala interoperabilna IT rješenja.”

Što je s malim tvrtkama ?

Osim navedenih velikih igrača, veliki broj malih tvrtki je osnovan na bazi poslovnog modela kojiobuhvaća neke (ili sve) segmente komercijalne upotrebe “Open Source” programa i/ili sustava:

Pružanja tehničke podrške za kupce,●

Razvoja i optimizacije prema potrebama klijenata (kupaca),●

Razvoja zasebnih komercijalnih “Close Source” ili “Open Source” aplikacija za postojeći “Open●

Source” program ili sustav,Integracija sustava kod kupca,●

…●

Filmovi i literatura koju preporučujemo

Za sve koji žele vidjeti komentare i iskustva ljudi koji su najviše doprinjeli razvoju “Open Source”inicijative, iz prve ruke, preporučujemo da pogledaju dokumentarni film : “Revolution OS” : IMDB :http://www.imdb.com/title/tt0308808/

U dokumentarcu nam svoja iskustva govore :

Richard M. Stallman (Programer, tvorac “Free Software Movement” i “GNU” projekta)●

Linus Torvalds (tvorac Linux kernela)●

Eric Steven Raymond (Programer UNIX programa, kasnije i GNU/LINUX i autor knjige “The●

Cathedral and the Bazaar” ,suosnivač “Open Source Initiative (OSI)”)Bruce Perens (tvorac definicije “Open Source”, Programer i suosnivač “Open Source Initiative (OSI)”)●

Larry Augustin (Suvlasnik/Osnivać tvrke “VA Linux Systems”)●

…●

Ako se bavite razvojem softvera (ne nužno i Open Sourcea), preporučujem da pročitate knjižicu (~35stranica) koja je promijenila stavove mnogih trvtki o “Open Source”-u. Autor knjige je Eric StevenRaymond, koji je od sredine 1980 radio na razvoju raznih programa za Unix:

Net Hack (igra),●

Razne komponente Emacs-a,●

xlife●

kasnije je radio i na igri “The Battle for Wesnoth” ,●

..●

Page 9: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 9/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

On je praktično cijelo desetljeće radio na razvoju Unix programa ustaljenim i stabilnimmetodologijama razvoja (poput Katedrale kako i sam kaže) a odatle i naziv knjige. Nakon toga krenuoje u avanturu razvoja programa metodologijom koju je preporučao Linus Torvalds, a koju on nazivamodelom tržnice (engl. Bazaar).Dakle razvoja u kojem sudjeluje veći ili veliki broj ljudi, od kojih svatkočesto objavljuje promjene koda, … ali o tome u knjizi. On nam opisuje svoja iskustva i probleme uzriješenja, na koje je nailazio u razvoju e-mail klijenta (Fetchmail) na kojem je počeo raditi.

Njegova knjiga je i po mnogima uzrokovala odluku tvrtke “Netscape Communications Corporation”koja je tvorac, u to vrijeme, najboljeg Web preglednika, da kompletan kôd “Netscape Navigator”preglednika, daju u “Open Source” i otvore “Mozilla” fondaciju.

Taj potez je kasnije otvorio vrata za razvoj današnjih preglednika baziranih na “Mozilla Firefox”pregledniku koji je razvijan unutar fondacije “Mozilla”.

Knjižica se zove : “ The Cathedral and the Bazaar ”, možete ju potražiti na internetu : njenaizvorna verzija se može pronaći na : http://www.unterstein.net/su/docs/CathBaz.pdf ⇒ Postoji iproširena verzija od stotina stranica, koja je naravno komercijalna i zanimljiva ali mislim da je zarazumjevanje svega dovoljna i ova izvorna verzija.

Zašto Unix/Linux

Priču o Linuxu moramo započeti puno prije njegovog vremena nastanka, točnije nekih dvadesetakgodina ranije.Ona počinje s razvojem Unix operativnih sustava.

Što je toliko posebno oko UNIX-a ?.

Njegove razne varijante su u upotrebi već desetke godina i provjerene u radu u raznim industrijskim idrugim zahtjevnim okruženjima (telekomi, banke, industrija , vojska, … ).

Tisuće programa koji čine UNIX/Linux su također u vrlo dugoj upotrebi te su ispolirani, testirani i●

višestruko optimizirani u radu.

Povijest Unix-a

Razvijen je 1969 u “AT&T Bell labs”

1.1.1970 se smatra rođenjem Unixa●

Od tada su se pojavile razne varijante, koje su i danas u upotrebi:

BSD Unix,●

SUN OS (kasnije Solaris),●

IRIX,●

HP-UX,●

AIX,●

Digital UNIX,●

NeXTSTEP (kasnije Mac OS/IOS),●

QNX,●

Minix , …●

Page 10: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Koristi se na različitim arhitekturama:

x86,●

PowerPC,●

mips,●

SPARC,●

ARM, …●

Razvoj UNIX-a od 1969 do danas vidljiv je u ovom dokumentu (koji se stalno osvježava) :

http://www.levenez.com/unix/unix.pdf

Unix podržava:

Multitasking – tj. pokretanje ili izvršavanje više zadataka (programa) istovremeno,●

Multiuser rad – moguć je rad više korisnika istovremeno,●

Interaktivan je (izvođenje naredbi je trenutno).●

Osnovna filozofija Unix-a kaže :“Everything is a file” – Sve je datoteka i prema tome baratanje sasamim operativnim sustavom, njegovim aplikacijama i njegovim hardverom je vrlo jednostavno te jemoguće skriptirati i automatizirati svaki djelić sustava, prema potrebi.

Za sada samo dobro upamtite : “Everything is a file”

Povijest Open Source-a i Linux-a

Za razumjevanje razvoja Linux-u bitno je razumjeti i razvoj Open Source-a. Naime 1983. godine -pokreće se “Free Software Movement” te godinu dana kasnije (1983/84) Richard Stallman pokrećeGNU projekt koji 1984 kreće s razvojem prvih programa.

Želja je bila sve programe koji postoje u komercijalnim Unix opeativnim sustavima prepisati “od nule”(ne koristeći niti jednu liniju koda – jer bi to bilo kršenje autorskih prava) tj. napisati nove programe sistom ili proširenom funkcionalnosti i objaviti ih pod nekom od Open Source Licenci.

Veći dio ovog posla (dakle ovdje govorimo o tisućama programa) je dovršen negdje u toku 1992.godine.

Neovisno o razvoju FSF i GNU 1991. godine Linus Torvalds razvija jezgru (Kernel) i slijedi logičan koraktj. povezivanje tisuća programa pisanih unutar GNU pokreta i kernela. Od tog trenutka povezano jesve što je bilo potrebno za stvaranje novog operativnog sustava danas poznatog pod nazivom Linux(GNU Linux).

Od tada do danas pojavile su se razne varijante Linux-a, od kojih su se ustalile tri grane na osnovikojih su nastali na deseci drugih Linux distribucija:

Debian●

Slackware●

RedHat●

Page 11: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 11/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Nešto više detalja možete vidjeti u našem predavanju o open source-u: : https://www.opensource-osijek.org/wordpress/predavanja/etfos-predavanje-sto-kako-i-zasto-open-source/

Počeci Linuxa

Linux se od prve verzije ili tkzv. distribucije nastavio razvijati preko nekoliko glavnih distribucija, što jevidljivo na slikama (1)

Page 12: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Page 13: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 13/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Od kojih komponenti se sastoji Unix / Linux

Linux se sastoji od slijedećih komponenti:

Kernel-a, koji sadrži:●

boot code❍

driveri❍

memory & file management❍

Razvojnog okruženja, koje se sastoji od:●

Compilera, linkera, …❍

System Library, …❍

Debugger-a itd❍

Korisničkog sućelja (User interface):●

Komandno linijski interface (shell)❍

Grafičko sučelje❍

Ostali programi (GNU)❍

Dokumentacija❍

Logička shema rada Unix/Linux-a je vidljiva na slici:

Page 14: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Upoznajmo se sa Linux-om

Da bi se mogli pobliže upoznati sa Linux sustavom na kojem radimo, potrebne su nam i neke osnovnenaredbe, pomoću kojih ćemo saznati nešto više o samom sustavu, kao i o naredbama koje će nampomoći da pronađemo potrebne naredbe ili komponente sustava.

Saznajmo nešto više o Linuxu i Linux naredbama

Na većini Unix i Linux sustava standardno su instalirane i detaljnije upute za svaku naredbu, koje jemoguće i pretraživati .

man naredba

U slučajevima kada želimo pronaći detaljnije upute naredbe koju poznajemo, koristiti ćemo naredbuman

Upute (manuals) pozivamo naredbom man . Upute (man) su podjeljene u nekoliko područja, označenihbrojevima:

1 User Commands

Page 15: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 15/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

2 System Calls3 C Library Functions4 Devices and Special Files5 File Formats and Conventions6 Games et. Al.7 Miscellanea8 System Administration tools and DeamonsMoguće je pretraživati upute za određe naredbe prema definiranim područjima (ili bez njih).

U slučaju da navodimo i područje, pretraživanje će se vršitisamo unutar definiranog područja (br. 1. do 8.).

Primjer :

1. Nađmo sve upute (iz svih područja uputa) za samu naredbu man :

man man

1.1. Nađimo upute za naredbu ls (izlistavanja sadržaja direktorija)

man ls

2. Nađimo upute za naredbu man ali samo iz područja (section -s) 1 (User Commands):

man -s 1 man

3. Nađimo upute za narebu man ali samo iz područja (section -s) 7 (Miscellanea):

man -s 7 man

4. Pretražimo whatis bazu pomoću man naredbe, za ključnu riječ ls

man -k ls

whatis i apropos naredbe

whatis naredba daje nam samo osnovni opis naredbe za koju tražimo informacije.Osnovni opisi svihnaredbi (naravno uz pripadajuću naredu)se pohranjuju u posebnu bazu podataka : tkzv. “whatisdatabase”.

Pogledajmo primjer za man naredbu:

whatis man

man (1) - format and display the on-line manual pagesman (1p) - display system documentation

Page 16: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

man (7) - macros to format man pagesman [manpath] (1) - format and display the on-line manual pagesman-pages (7) - conventions for writing Linux man pagesman.config [man] (5) - configuration data for man

Naredba whatis nam je vratila sve opise gdje postoji opis man naredbe. Brojevi () u drugom stupcuukazuju na poglavlje man naredbe u kojem se nalaze detaljiji opisi.

Whatis baza se obićno nalazi u : /var/cache/man/whatis i nju može (re)kreirati samo root(administrator) korisnik.

Whatis baza sadrži samo imena svih naredbi uz njihovosnovni opis, izvučen iz svih man opisa.

U slučaju da smo instalirali novu naredbu u sustav, uz koju su se instalirale i man stranice (upute),potrebno je kreirati i whatis unose u whatis bazi. To se radi pomoću naredbe makewhatis naredbe(ovo može pokrnuti samo root korisnk i može potrajati neko vrijeme):

makewhatis

apropos naredba nam omogućava pretraživanje bilo koje ključne rijeći iz whatis baze podataka. Uslučajevima kada ne znamo točan naziv neke naredbe ali znamo što bi ta naredba trebala raditi,možemo pretraživati bilo koji pojam ili ključnu rijeć, te će nam apropos dati popis svih naredbi čiliopisi sadrže ono što tražimo , uz pridruženu naredbu.

Primjer:

1. Tražimo sve naredbe koje sadrže riječ “pci”

apropos pci

lspci (8) - list all PCI devicessetpci (8) - configure PCI devicesupdate-pciids (8) - download new version of the PCI ID list

Vidimo da smo dobili ponuđene tri naredbe koje u opisu imaju pojam ili riječ “pci” : lspci , setpci iupdate-pciids

2.Zanima nas koja naredba sadrži u opisu točan pojam : “remove a directory”, jer nas zanima kakoobrisati direktorij

apropos "remove a directory"

rmdir (3p) - remove a directoryunlink (3p) - remove a directory entryunlinkat (2) - remove a directory entry relative to a directory filedescriptor

Page 17: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 17/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Sada smo također dobili tri naredbe : rmdir , unlink i unlinkat , od kojih nas je zapravo zanimalanaredba rmdir. Sada možemo potražiti man stranicu od naredbe rmdir.

Osnovne naredbe vezane uz operativni sustav i komponente računala:

Popis osnovnih sistemskih naredbi, pomoću kojih možemo doznati nešto više o samom Linux sustavute o hardveru na kojem se nalazi::

uname : ispiše osnovne sistem informacije

dmesg : ispiše sistemske poruke (HW Events)

dmidecode: ispiše DMI (SMBIOS) info ili sadržaj /proc/ direktorija

lspci : ispiše sve PCI uređaje

Pogledajmo što nam govore gore navedene naredbe:

uname -aLinux uciona01.inkubator.hr 2.6.32-23-pve #1 SMP Tue Aug 6 07:04:06 CEST2013 x86_64 x86_64 x86_64 GNU/Linux

Pokretanjem naredbe uname -a dobijamo nekoliko osnovnih informacija o sustavu:

Linux Dakle ovo je Linux●

uciona01.inkubator.hr ovo je ime računala (Hostname)●

2.6.32.-23-pve ovo je verzije Linux kernela●

SMP “Symmetric multi-processing” - podrška za više procesora (CPU) ili više jezgri●

Tue Aug 6 07:04:06 CEST 2013 Datum kada je linux kernel compile-iran●

x86_64 x86_64 Arhitektura za koju je kernel compile-iran●

x86_64 Arhitektura ovog sustava●

GNU/Linux OS : GNU tools / Linux kernel●

dmesg

Initializing cgroup subsys cpusetInitializing cgroup subsys cpuLinux version 2.6.32-431.11.2.el6.x86_64 ([email protected]) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-4)(GCC) ) #1 SMP Mon Mar 3 13:32:45 EST 2014Command line: ro root=UUID=fb38dcf6-d76d-4191-b6e7-a5378c4fd6cc rd_NO_LUKSKEYBOARDTYPE=pc KEYTABLE=us LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet rhgb quietKERNEL supported cpus: Intel GenuineIntel AMD AuthenticAMD Centaur CentaurHauls... ... ...sd 0:0:0:0: [sda] 585871964 512-byte logical blocks: (299 GB/279 GiB)sd 0:0:0:0: [sda] Write Protect is off

Page 18: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

sd 0:0:0:0: [sda] Mode Sense: 73 00 00 08sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn'tsupport DPO or FUA sda: sda1 sda2 sda3 sda4 <sda5 sda6>sd 0:0:0:0: [sda] Attached SCSI disk... ... ...ACPI: Power Button [PWRF]ACPI: acpi_idle yielding to intel_idlethermal LNXTHERM:01: registered as thermal_zone0ACPI: Thermal Zone [THM0] (8 C)ERST: Failed to get Error Log Address Range.GHES: APEI firmware first mode is enabled by APEI bit and WHEA _OSC.Non-volatile memory driver v1.3Linux agpgart interface v0.103crash memory driver: version 1.1Serial: 8250/16550 driver, 4 ports, IRQ sharing enabledserial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550Aserial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A00:08: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A

Naredba dmesg ispisuje sve poruke sustava, od trenutka podizanja i učitavanja kernela i kernelmodula (drivera) na dalje.

Na početku našeg izlistanja vidimo inicijalizaciju procesora (CPU ), ….. kasnije diskova sd (sda) , …raznih portova i sl.

Dakle na početku se inicijalizira cijeli sustav i provjeravaju i inicijaliziraju sve hardverske komponente.

Nakon što se sustav podigne , sa dmesg se vide i sve tekuće sistemske poruke. kao što su poruke :

kada ubacite CD ili USB stick●

o grešci neke komponente sustava i sl.●

dmidecode

.... ... ...

Handle 0xD100, DMI type 209, 68 bytesHP BIOS NIC PCI and MAC InformationNIC 1: PCI device 04:00.0, MAC address D8:9D:68:42:3D:F1NIC 2: PCI device 04:00.1, MAC address D8:9D:68:42:3D:F2

Handle 0x110F, DMI type 17, 34 bytesMemory DeviceArray Handle: 0x1001Error Information Handle: Not ProvidedTotal Width: 72 bitsData Width: 64 bitsSize: 8192 MBForm Factor: DIMMSet: 15Locator: PROC 2 DIMM 8

Page 19: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 19/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Bank Locator: Not SpecifiedType: DDR3Type Detail: Synchronous Registered (Buffered)Speed: 1600 MHzManufacturer: HPSerial Number: Not SpecifiedAsset Tag: Not SpecifiedPart Number: Not SpecifiedRank: 2Configured Clock Speed: 1600 MHz

Naredba dmidecode daje nam izlistanje statusa svih bitnih harverskih kompomenti, standarno supodjeljene u nekoliko kategorija:

bios●

system●

baseboard●

chassis●

processor●

memory●

cache●

connector●

slot●

Dakle možemo zatražiti ispis stanja svih hardverskih kmpomenti ili naredbu pozvati s prekidaćem -t uzspecifikaciju određene komponente.

Pr. Zanimaju nas podaci samo o BIOS-u računala (matične ploče):

dmidecode -t bios# dmidecode 2.9SMBIOS 2.31 present.

Handle 0x0000, DMI type 0, 20 bytesBIOS Information Vendor: ASUS // Phoenix Technologies Ltd. Version: 7.00 R4.14.1561.02 Release Date: 11/25/2013 Address: 0xE49F0 Runtime Size: 112144 bytes ROM Size: 2048 kB Characteristics: PCI is supported PNP is supported APM is supported BIOS is upgradeable BIOS shadowing is allowed ESCD support is available Boot from CD is supported Selectable boot is supported ... ... ...

Page 20: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

lspci

... ... ...

00:00.0 Host bridge: Intel Corporation Xeon E5/Core i7 DMI2 (rev 07)00:01.0 PCI bridge: Intel Corporation Xeon E5/Core i7 IIO PCI Express RootPort 1a (rev 07)00:01.1 PCI bridge: Intel Corporation Xeon E5/Core i7 IIO PCI Express RootPort 1b (rev 07)00:04.0 System peripheral: Intel Corporation Xeon E5/Core i7 DMA Channel 0(rev 07)00:04.1 System peripheral: Intel Corporation Xeon E5/Core i7 DMA Channel 1(rev 07)00:05.0 System peripheral: Intel Corporation Xeon E5/Core i7 Address Map,VTd_Misc, System Management (rev 07)00:05.2 System peripheral: Intel Corporation Xeon E5/Core i7 Control Statusand Global Errors (rev 07)00:05.4 PIC: Intel Corporation Xeon E5/Core i7 I/O APIC (rev 07)00:11.0 PCI bridge: Intel Corporation C600/X79 series chipset PCI ExpressVirtual Root Port (rev 05)00:1a.0 USB controller: Intel Corporation C600/X79 series chipset USB2Enhanced Host Controller #2 (rev 05)00:1c.0 PCI bridge: Intel Corporation C600/X79 series chipset PCI ExpressRoot Port 1 (rev b5)00:1d.0 USB controller: Intel Corporation C600/X79 series chipset USB2Enhanced Host Controller #1 (rev 05)00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5)00:1f.0 ISA bridge: Intel Corporation C600/X79 series chipset LPC Controller(rev 05)01:00.1 VGA compatible controller: Matrox Electronics Systems Ltd. MGAG200EH02:01.0 Ethernet controller: Intel Corporation 82547EI Gigabit EthernetController03:00.0 RAID bus controller: Hewlett-Packard Company Smart Array Gen8Controllers (rev 01)04:00.0 Ethernet controller: Broadcom Corporation NetXtreme II BCM57810 10Gigabit Ethernet (rev 11)

Naredba lspci ispisuje nam podatke o svim PCI sabirnicama i uređajim koji su se prijavili na sve PCIsistemske sabirnice.

Dakle ovdje je vidljv dobar dio hardvera. Osim osnovnog poziva naredbe, moguće je istu naredbupozvati i sa prekidaćem -v ili -s -vv ako želimo više detalja o hardveru:

Dakle ovako:

lspci -v

ili

Page 21: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 21/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

lspci -vv

U ovom slučaju pogledajmo detaljnije samo mrežnu karticu INTEL 82547EI:

lspci -vv

... ... ...

02:01.0 Ethernet controller: Intel Corporation 82547EI Gigabit EthernetController Subsystem: Fujitsu Technology Solutions Device 101e Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr-Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz+ UDF- FastB2B- ParErr- DEVSEL=medium>TAbort-<TAbort- <MAbort->SERR- <PERR- INTx+ Latency: 0 (63750ns min), Cache Line Size: 32 bytes Interrupt: pin A routed to IRQ 18 Region 0: Memory at e0100000 (32-bit, non-prefetchable) [size=128K] Region 2: I/O ports at 3000 [size=32] Capabilities: [dc] Power Management version 2 Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 PME- Kernel driver in use: e1000 Kernel modules: e1000

Diskovi i particije

Geometrija diskova

S obzirom na činjenicu da operativni sustav kao i sve programe kao i podatke držimo i spremamo natvrdi disk (engl. Hard Disk), bitno je razumjeti osnove rada tvrdog diska.Svaki tvrdi disk sastoji se odnekoliko dijelova:

Upravljačke elektronike●

Servo motora●

Ploča●

Glava za čitanje i pisanje●

Kučišta●

Fizički izgled tvrdog diska je vidljiv na slici:

Page 22: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Pojednostavljeno, logički, tvrdi disk izgleda ovako:

Tvrdi disk radi tako da upravljačka elektronika kontrolira rad servo motora, koji rotira ploče (diskove),konstantnom brzinom. Podatke na disk zapisuju i čitaju glave (engl. Head) koje se nalaze sa svakestrane ploče (diska). Glave se pomiću odnosno pozicioniraju prema potrebi, na lokaciju s koje morajučitati ili pisati podatke. Podaci se čitaju i zapisuju s obije strane svake ploče (diska).

Rotacijske brzine diskova, danas dostupnih na tržištu su:

Broj okretaja diska [o/min]4500

Page 23: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 23/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

72001000015000

Što je veća brzina rotacije diska i sve ostale komponentediska moraju raditi brže a samim time brzina pristupapodacima kao i brzina prijenosa podataka postaje veća.

Površina svake ploče (diska) je podijeljena u koncentrične krugove tj. u takozvane trake ili staze:

Više traka na istoj poziciji, na svim pločama tj. diskovima se naziva cilindrom:

Kako BIOS prepoznaje tvrdi disk i njegov kapacitet

Page 24: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Spajanjem tvrdog diska na disk kontroler (ATA/SATA/SCSI/SAS/…) na matičnoj ploči ili na PCI/PCIExpress kartici, disk kontroler prijavljuje tvrdi disk BIOS-u računala.

Bitno je znati da svaki tvrdi disk dolazi s tvorničkimformatom na vrlo niskoj razini (engl. Low Level Format) kojisluži za pravilno pozicioniranje glava na pozicije zapisanje/čitanje za svaki sektor na disku.

Nakon što je tvrdi disk inicijalno vidljiv u BIOS-u računala,prvi korak BIOS-a je mapiranje fizičke ilogičke podjele na tvrdom disku (do nivoa sektora), prema kojemu se izračunava i nazivni kapacitetdiska.

Starije metode su koristile CHS mapiranje (Cilinder Head Sector) odnosno adresiranje tj.●

identifikaciju svakog individualnog sektora na disku prema njegovoj poziciji unutar trake (staze). Pritome je traka (staza) bila određena prema (logičkoj) glavi (engl. Head) i broju cilindra. CHS zbogsvog načina mapiranja i ograničenosti koje donosi, CHS može adresirati tvrde diskove do veličine od504 MB.Novije metode koriste tkzv. LBA (Logical block addressing) metodu koja logički adresira sektore.●

Ranije verzije su imale ograničenje od maksimalne veličine tvrdog diska od 2.1GB a novije do 8.4GB. Standard se proširivao pa je slijedeća granica bila 137 GB i dalje sve do 2TB granice (48.bitnoadresiranje).

Najnovija implementacija koje više ne koristi BIOS već UEFI ( Unified Extensible Firmware❍

Interface) kao noviju verziju BIOS-a, koji koristi 64.bitnu shemu za adresiranje pa je prema tomeograničenje ako imamo sektor od 512 byte-a x 64.bit-a = 9.4 ZB (9.4 × 10^21 byte-a)

Pogledajmo sada površinu jedne ploče (diska):

Page 25: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 25/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Područja za zapisivanje podatka se nalaze unutar traka. Svaka traka je podjeljena na najmanjejedinice koje se nazivaju sektori. Veličina sektora na većini tvrdih diskova je obično 512 byte-a. Podacise u konačnici zapisuju u blokove od nekoliko sektora koji se nazivaju klasteri. Veličina klasterapodataka, koji je i najmanja jedinica za zapisivanje podataka, ovisi o datotečnom sustavu (engl. FileSystem). Proces logičkog formiranja površine diska u trake i sektore se zove formatiranje.

Različiti datotečni sustavi imaju različite moguće veličine klastera koje možemo odabrati samo utrenutku formatiranja particije. Kao što smo rekli podaci se zapisuju u klastere kao najmanje jedinicezapisa, jedan za drugim (koliko god je to moguće). Kod zapisivanja podataka na disk cilj je nizpodataka koje zapisujemo zapisati u klastere koji su u nizu. U tom slučaju je i čitanje bre nego da supodaci razbacani na različitim dijelovima diska, što se može dogoditi kod brisanja nekih podataka kojise nalaze pozicionirani između drugih podataka (datoteka). Kada se nakon toga ponovno zapisuju nekidrugi podaci, može se dogoditi da su upisani dijelom na mjesta gdje su bili prethodon obrisani podacia drugim dijelom (ako su novi podaci veći od onih koji su prethodno obrisani) na prvu slijedećuslobodnu poziciju. Ovaj problem se zove fragmentacija i redovito se događa na nekim datotečnimsustavima koji nemaju zaštitni mehanizam protiv fragmentacije (pr. FAT i NTFS datotečni sustaviimaju problem sa fragmentacijom). U slučaju fragmentacije podataka, čitanje s diska postaje svremenom sve sporije i sporije.

Page 26: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Vratimo se na klastere.

Veličinom klastera je uvjetovana i veličina cijelog datotečnog sustava (odnos je specifičan za svakidatotečni sustav). Tablica pokazuje odnos maksimalne veličine particije uz pripadajuću veličinuklastera, za određeni datotečni sustav:

FAT16

Maksimalna veličina particije Veličina klastera64 MB 1 KB128 MB 2 KB256 MB 4 KB512 MB 8 KB1 GB 16 KB2 GB 32 KB4 GB 64 KB

FAT32

Maksimalna veličina particije Veličina klastera128 MB 1 KB256 MB 2 KB8 GB 4 KB16 GB 8 KB32 GB 16 KB

NTFS

Maksimalna veličina particije Veličina klastera16 TB 4 KB32 TB 8 KB64 TB 16 KB128 TB 32 KB256 TB 64 KB

ext3/ext4

Maksimalna veličina particije Veličina klastera (Block size)4 TB 1 KB8 TB 2 KB16 TB 4 KB32 TB 8 KB

Linux/UNIX datotečni sustavi veličinu klustera nazivaju“Block Size” tj veličinom bloka.

Page 27: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 27/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Primjer

Ako nam je veličina sektora 512 byte-a i koristimo datotečni sustav kojem je veličina klastera pr. 4KBto znači da se koriste 4 sektora za jedan klaster.

Ako trebamo zapisati datoteku veličine 4KB to znači da će se podaci zapisati točno u jedan klaster.●

Ako trebamo zapisati datoteku veličine 7KB to znači da će se iskoristiti 2 klastera od 4KB (ukupno●

8KB), i u ostatak od 7KB do 8KB će ostati neiskorišten jer se podaci mogu zapisivati samo do nivoaklastera, bez obzira koliko če biti popunjen ili ne.

Logička shema diska

Prema logičkoj shemi, svaki tvrdi (ili SSD) disk na samom početku, u prvom sektoru (na večini tvrdihdiskova, veličine je 512 byte-a) ima tkzv. Master Boot Record (MBR), to je poseban dio diska s kojega,kod pokretanja računala, BIOS računala počinje čitati podatke. U Master Boot Recordu (MBR ) senalazi mali program koji čita particijsku tablicu, te provjerava koja od njih je označena kao aktivna.

Detaljnije, MBR sadrži informacije o particijama i njihovim pozicijama. Osim toga u MBR se nalazi itkzv. “Loader” koji se učitava i pokreće kod podizanja sustava. On prvo pronalazi aktivnu particiju,potom pogledom na particijsku tablicu pronalazi prvi sektor aktivne particije.

Pozicija na prvom sektoru particije naziva se “Boot Record”-u (BR), ili “Volume Boot Record” (VBR).

Na tom prvom sektoru aktivne particije nalazi se tkzv. “Boot Loader”. Ako je to bila aktivna particijatada “Boot Loader” tj. VBR pokreće prvi dio operativnog sustava, pohranjenog na podatkovnom dijeluparticije (Data dio), koji onda nastavlja dalje s učitavanjem ostalih komponenti sustava.

Ograničenja MBR-a

Korištenjem MBR particijske tablice koja se kako smo rekli nalazi u dijelu MBR-a, je ograničeno nadiskove čija je maksimaln veličina particije do 2TB, zbog 32.bitnog adresiranja. Računica je vrlo jasna :2^32 x 512 byte-a = 2TB. Dakle Tvrdi diskovi s većim particijama od 2 TB ne mogu koristiti MBRshemu.

Stoga se u novije vrijeme u novim verzijama BIOS-a, koji se zove UEFI (Unified Extensible FirmwareInterface), više ne koristi MBR shema nego nova GPT shema (GUID Partition Table) koja nadilazi ovoograničenje. Ograničenje koje postavlja GPT na maksimalnu veličinu particije je 9.4 ZB (Zetabajta)

Mi ćemo se u daljnjem tekstu bazirati na MBR shemi.

Podsjetimo se : Aktivna može biti samo jedna od maksimalno4 primarne particije.

Page 28: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Što kada želimo imati “Multiboot” sustavU slučajevima kada želimo instalirati dve ili više operativnih sustava te imati mogućnost odabira kojioperativni sustav želimo da se pokrene npr. instalirali smo 2 ili više Linuxa ili Linux i Windows ili nekidrugi OS. U ovakvom scenariju potreban nam je Loader koji je instaliran u MBR, a koji ima mogućnostpokretanja Operativnog sustava sa željene particije.

Primjer:Imamo instalirana 2 Linuxa, svaki na svojoj particiji. Prvo smo instalirali Linux Centos (particija 1) i pritome smo Boot loader instalirali na “root” particiju tj. na Boot Record od particije 1. (u primjeru/dev/sdb1). Nakon toga smo instalirali Linux Slackware na drugu particiju (/dev/sdb2) ali smo nakraju instalacije rekli da želimo boot loader instalirati na MBR od diska (/dev/sdb).

Particija 1 : Linux CentOS

Particija 2 : Linux Slackware

Što se sada dogodilo: Imamo dvije particije od kojih je svaka označena kao “boot” particija i sada nijebitno koja je od njih označena kao aktivna jer će se Loader na MBR brinuti o tome s koje particije ćepodići operativni sustav. Osnosno biti će nam ponuđen odabir željenog operativnog sustava.

Particije izgledaju ovako:

Disk Drive: /dev/sdb Size: 1073741824 bytes, 1073 MB Heads: 139 Sectors per Track: 8 Cylinders: 1885

Name Flags Part Type FS Type [Label] Size(MB) ------------------------------------------------------------------------------ sdb1 Boot Primary Linux ext3 CentOS511.85 sdb2 Boot Primary Linux ext3 Slackware561.91*

Odabirom 1 (Linux CentOS) Loader sa MBR pronalazi prvi sektor (tj .Boot Record) na prvoj particiji iučitava boot loader koji dalje podiže Linux CentOS.

Odabirom 2 (Linux Slackware) Loader sa MBR bi morao pronaći prvi sektor (tj .Boot Record) na drugojparticiji i učitavati boot loader koji dalje podiže Linux Slackware. –> Ovo bi bio normalan postupak.

Vratimo se na logički izgled diska. Slika prikazuje osnovni izgled diska s 4 primarne particije:

Page 29: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 29/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Originalna shema particioniranja PC računala, dozvoljava samo 4 primarne particije. Pošto je to svremenom postalo premalo, uvedene su tkzv extended (proširene) ili logičke particije.Uvođenjem proširenih particija zapravo je omogućeno unutar svake od primarnih particija, kreiranjedo 15 pod particija (tj. Logičkih particija).U daljem tekstu ćemo se zbog jednostavnosti, držati primarnih particija.Za početak ćemo se bazirati na osnovnim Unix/Linux datotečnim sustavima, koji se nalaze naprimarnoj particiji.

Unix/Linux sustavi diskove i particije vide prvo kao datoteke (u /dev/ direktoriju), koje se povezuju (mount -aju) u neki postojeći direktorij – za razliku od Windows OS-a , koji particije naziva ( C:, D:,E:,…).

Primjer

Za tvrde diskove:

/dev/sda označava SATA tvrdi disk 1 , pri tome :●

/dev/sda1 označava SATA tvrdi disk 1, particiju 1❍

/dev/sda2 označava SATA tvrdi disk 1, particiju 2❍

…❍

/dev/sdb označava SATA tvrdi disk 2 , pri tome :●

/dev/sdb1 označava SATA tvrdi disk 2, particiju 1❍

/dev/sdb2 označava SATA tvrdi disk 2, particiju 2❍

Page 30: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

…❍

/dev/sdc označava SATA tvrdi disk 3●

…❍

Napredno

Block Device

Prije svega, moramo objasniti kako se uopće zapisuju podaci na neki disk “storage” tj. medij koji sesastoji od blokova podataka iste veličine tj. “block device-a”.

“Block device” je zapravo virtualni uređaj za zapisivanje podataka spremljenih u blokove (podataka),pri čemu je moguć pristup bilo kojem od tih blokova podataka neovisno o pristupu nekom drugombloku podataka. Ovakav način pristupa se naziva “Random Access”.

Dakle kada se podaci zapisuju na tvrdi disk, oni se zapisuju u blokovima (podataka) i na isti način imse pristupa za čitanje.

Uređaji koji koriste “Block device” su :

Tvrdi disk●

SSD Disk●

Određeni mrežni protokoli (pr. : iSCSI, DRBD, …)●

CD/DVD●

…●

Pogledajmo naš tvrdi disk (/dev/sda ):

ls -al /dev/sda

brw-rw---- 1 root disk 8, 0 Apr 8 15:57 /dev/sda

Prvo slovo u ovlastima (permissions) ove datoteke koja predstavlja naš cijeli tvrdi disk je b , što značida je on “Block Device”.Dakle u radu s diskovima i particijama se podrazumjeva da radimo s “Block Device”-ima.Ostale tipove datoteka (i direktorija) možete vidjeti u poglavlju “DIrektoriji i datoteke”

Kako se mapiraju ( mount-aju) particije u direktorije i zašto?.

U Linux svijetu je i sama particija određena datoteka u /dev/ direktoriju a želimo joj pristupiti prekofile sustava koji je kreiran na njoj (i koji se, kao što smo rekli brine o datotekama i direktorijima).

Zbog toga se svaka particija, formatirana sa određenim file sustavom, mora povezati s određenomtočkom u postojećoj strukturi tj. stablu direktorija.

Kako to izgleda:

Pr. SATA tvrdi disk 1 , particija 1 je formatirana sa ext4 file sustavom i nju ćemo povezati s novimdirektorijem koji smo nazvali /hdd-novi

Page 31: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 31/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Dakle /dev/sda1 će se mapirati (mount-ati) u /hdd-novi

Kod mount-anja je potrebno znati i koji je file sustav u pitanjute se on mora dodati kao parametar.

Primjer

File sustave ext3 i ext4 nije potrebno navoditi jer se podrazumjevaju. Za ostale se mora navestivrsta file sustava.Takav slučaj je pr. XFS file sustav. Ručno to možemo odraditi na slijedeći način (zaext4 file sustav):

mount /dev/sda1 /hdd-novi

Da je ovo bio XFS file sustav, naredba bi izgledala ovako:

mount -t xfs /dev/sda1 /hdd-novi

Sa -t prekidačem se odabire koji file sustav je u pitanju.

Od tog trenutka, sadržaj direktorija /hdd-novi je particija SATA tvrdog diska 1 , particija 1, sve dorestarta računala.

Dakle ovo mapiranje koje smo napravili nije permanentno (trajno). Objasniti ćemo i automatski način,koji osigurava rad i nakon restarta računala.

Kako mount-ati CD/DVD-ROM ?.

Praktično isto kao i tvrdi disk, uz razliku , da kada nam više ne treba, moramo napraviti i unmount (jeru protivnom nećemo moći izvaditi CD/DVD medij iz uređaja): Ako je CD/DVD-ROM , uređaj vidljiv kao/dev/cdrom i ako ga želimo mountati u direktorij /cdrom :

mount -t iso9660 /dev/cdrom /cdrom

Nakon završetka rada ca CD/DVD medijem – kada ga želimo izvaditi , moramo izaći iz /cdromdirektorija te moramo napraviti unmount.

umount /dev/cdrom

Što je /etc/fstab

Da bi mogli razumjeti automatsko mount -anje particija, prvo moramo razumjeti /etc/fstab ./etc/fstab sadrži popis svih file sustava, njihovih lokacija i ostalih parametara koji su potrebni da bi

Page 32: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

se neki file sustav mount-ao prilikom podizanja sustava.Dakle kod svakog podizanja operativnog sustava, prvo se čita /etc/fstab te se na osnovu njegovihunosa, prvo se mount-a root direktorij (/ ) , sa file sustava i particije na kojoj se nalazi cijeli sustav.Nakon toga isto tako se mount-aju i ostali file sustavi, prema redosljedu, kojim su navedeni.Što se nalazi u /etc/fstab i kako to izgleda (na primjeru root / direktorija).

root ( / ) particija

Ako je primjerice /dev/sda1 sistemska particija na kojoj se nalazi cijeli Linux i formatirana je saext4 file sustavom, i ona se treba mount-ati u / direktorij koji predstavlja korijen (eng. root =korijen) stabla direktorija cijelog operativnog sustava.

File Sustav Direktorij u koji se mounta File Sustav Opcije Dump Pass/dev/sda1 / ext4 errors=remount-ro 0 1

U opcijama koje vidimo, može se dodavati dosta parametara,a ovaj koji mi imamo(errors=remount-ro) znači da će se u slučaju grešaka ova particija mount-ati samo read-only (bezprava snimanja), zbog toga da se može pokrenuti provjera tog file sustava ako dođe do greške.

Za provjeru i popravljanje integriteta podataka, postoje alati koji su specifični za točno određeni filesustav.U našem slučaju to je ext4 , pa se obično koristi alat fsck.ext4 .Za sada je bitno znati da kada se radi provjera ili popravljanje “podataka” na file sustavu, isti morabiti read-only.Dakle da se ne bi dogodilo da netko (ili neki program) u pozadini radi neke izmjene na podacima, jerone mogu dodatno pogoršati stanje.

“Dump” može imati vrijednost 0 ili 1 (uključena ili isključen opcija)“Dump” označava staru metodu “Backup-a”, kod gašenja sustava – ovo se ne koristi pa je preporukada ostane na 0

“Pass” može imati vrijednost 0, 1 ili 2 :0 - isključeno1 - pokreni fsck prvo na ovoj particija2 - pokreni fsck na ovoj particiji nakon one koja ima 1

“Pass-ing” označava da li postoji potreba da se automatski pokreće provjera file sustav-a (fsck) , zaroot (/ ) se preporuča da bude na 1 .

U slučaju root (/) file sustava to znači da će file sustav biti provjeravan automatski nakon određenogbroja restarta sustava.Kako je to konfigurirano, možemo vidjeti sa naredbom dumpe2fs.Probajmo saznati kako to izgleda na našem sustavu, na root particiji (/dev/sda1) :

Izlistati će se dosta toga a nas zanima samo ovo:

dumpe2fs -h /dev/sda1

... ... ...

Page 33: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 33/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Mount count: 9Maximum mount count: 36

To znači da je sustav restartan 9 puta te da će se nakon 36 puta pokrenuti fsck (privjera stanja diska).

swap particija

Druga bitna particija koju svaki Linux mora imati je swap particija.U Windows operativnim sustavimapostoji swap datoteka,a u Linux svijetu je za to potrebna posebna swap particija, sa posebnim swapfile sustavom optimiziranim za swap.

Što je Swap ?

U slučaju kada nam je sva radna (RAM) memorija puna, te nam je potrebno još RAM memorije, sustavuključuje SWAP memoriju tj , počinje koristiti swap particiju na tvrdom disku kao proširenje RAMmemorije. To je proces koji se dešava automatski. SWAP nije zamijena za RAM memoriju, već je samo(privremena) pomoć.

Preporuke kod kreiranja swap particije (ovo se radi samo kod instalacije operativnog sustava)su:

Ako sustav ima do 1GB RAM, kreirati swap particiju 2 x RAM●

Ako sustav ima preko 2 GB RAM , kreirati swap particiju iste veličine kao RAM.●

U slučaju da vam sustav intenzivno počinje koristiti swap, to je znak da je potrebno nadograditi RAMmemoriju.To se može provjeriti pomoću naredbe free :

Provjerimo koliko nam je zauzeće memorija (u GB) [server u primjeru ima 96GB RAM i SWAP od 93GB]

free -g

total used free shared bufferscachedMem: 96 60 33 0 0 40-/+ buffers/cache: 19 74Swap: 93 0 93

Kako izgleda unos u /etc/fstab za swap particiju (ako je swap particija /dev/sda2 ):

File sustav Direktorij u koji se mount-a Tip file sustava Opcije Dump Pass/dev/sda2 none swap sw 0 0

Dakle vidimo da se za razliku od root (/) particije swap ne mount-a nigdje i da je tip swap.

Kreiranje particija

Za kreiranje particija najčešće imamo dostupna dva programa:

Page 34: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

fdisk (komandnolinijski)●

cfdisk (“grafički “komandnolinijski)●

Mi ćemo koristiti cfdisk koji će nam prikazati disk i particije na “vizualan” i malo razumljiviji način.

U ovom primjeru koristiti ćemo drugi SATA hard disk ( /dev/sdb ) i na njemu kreirati samo jednuparticiju.

Pokrenimo cfdisk na /dev/sdb disku :

cfdisk /dev/sdb

cfdisk (util-linux 2.20.1)

Disk Drive: /dev/sdbSize: 599785472000 bytes, 599.7 GBHeads: 255 Sectors per Track: 63 Cylinders: 72919

Name Flags Part Type FS Type [Label] Size (MB)--------------------------------------------------------------------------------------------------------------------------------- Pri/Log Free Space 599785.48

[ Help ] [ New ] [ Print ] [ Quit ] [ Units ] [ Write ]

Postaviti će nam se pitanja:

Da li je particija primarna [PRIMARY] ili logička [LOGICAL] = odabiremo Primarnu1.Koju veličinu particije želimo (mi želimo sav rasploživ prostor pa nećemo ništa mijenjati) samo2.ENTERSada dolazimo do slijedećeg:

cfdisk (util-linux 2.20.1)

Disk Drive: /dev/sdbSize: 599785472000 bytes, 599.7 GBHeads: 255 Sectors per Track: 63 Cylinders: 72919

Name Flags Part Type FS Type [Label] Size (MB)---------------------------------------------------------------------------------------------------------------------------------sdb1 Pri/Log Linux 599785.48

[ Bootable ] [ Delete ] [ Help ] [ Maximize ] [ Print ] [ Quit ] [ Type ] [Units ] [ Write ]

Dakle particija je spremna, oznaka joj je /dev/sdb1 (broj 1 označava da je to prva particija), te je tip(vrsta) particije označena kao “Linux“, što i želimo jer ju kasnije želimo formatirati sa nekim od LinuxFile sustava.

Sada sve promijene treba snimiti na disk , odabirom WRITE

Page 35: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 35/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Sustav će nas upozoriti da ćemo s ovime izgubiti sve podatke na ovom disku, ako želimo nastavititreba upisati yes

Nakon što se sve završi možemo izaći iz programa sa QUIT

Sada imamo kreiranu particiju koju moramo formatirati.

Formatiranje particije

Da bi mogli koristiti particiju, moramo ju formatirati s nekim file (diskovnim) sustavom na kojemućemo moći raditi s direktorijima i datotekama. Particiju ćemo formatirati sa Linux Ext4 file sustavom,na slijedeći način (koristiti ćemo default posatvke formatiranja).

Sintaksa je : “naredba za formatiranje” “block device (tj. particija)”

U našem slučaju to će biti:

mkfs.ext4 /dev/sdb1

Nakon toga će se kreirati file sustav na toj particiji (što može potrajati ovisno o veličini particije):

mke2fs 1.42.5 (29-Jul-2012)Filesystem label=OS type: LinuxBlock size=4096 (log=2)Fragment size=4096 (log=2)Stride=0 blocks, Stripe width=0 blocks36610048 inodes, 146431992 blocks7321599 blocks (5.00%) reserved for the super userFirst data block=0Maximum filesystem blocks=42949672964469 block groups32768 blocks per group, 32768 fragments per group8192 inodes per groupSuperblock backups stored on blocks:32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,102400000

Allocating group tables: doneWriting inode tables: doneCreating journal (32768 blocks): doneWriting superblocks and filesystem accounting information: done

Sada imamo formatiranu particiju /dev/sdb1 , koju možemo mountati.

U našem slučaju napraviti ćemo to automatski u direktorij /STORAGE

mkdir /STORAGE

Page 36: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Za test probati ćemo to prvo ručno:

mount /dev/sdb1 /STORAGE

mount......

/dev/sdb1 on /STORAGE type ext4 (rw,relatime,barrier=1,data=ordered)

Zanima nas /dev/sdb1 što izgleda ok

Pogledajmo i veličinu particija koje su mount-ane:

df -h

Filesystem Size Used Avail Use% Mounted on... .... .... .... .../dev/sdb1 550G 198M 522G 1% /STORAGE

Dakle /dev/sdb1 je veličine 522GB i mountan je u /STORAGE

Sada ćemo ga unmount-ati i to napraviti tako da se mount-a kod svakog podizanja sustava

!! Oprezno !!

umount /STORAGE

Dodajmo na kraj datoteke /etc/fstab , slijedeći red (objašnjeno je u nekoliko poglavlja prije)

/dev/sdb1 /STORAGE ext4 errors=remount-ro 0 1

Nakon prvog restarta cijelog servera mount nove particije će biti automatski odrađen, ali to možemo iovako:

mount -a

Logička polja diskova

U slučajevima kada želimo postići veću sigurnost, skalabilnost ili brzinu pisanja ili čitanja na tvrdi diskili SSD disk, potrebno je koristiti tehnologije u kojiima se koristi više fizičkih diskova u istovremenomradu. Povezivanja više fizičkih diskova u neki logički disk odnosno polje diskova moguće je pomoćutkzv. RAID tehnologija ili tkzv. “Volume Managera”.

RAID je skraćenica od redundantnog polja nezavisnih diskova (engl. Redundand Array of IndependentDisks).

Page 37: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 37/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

O ćemu se radi ?Podaci se zapravo zapisuju (i čitaju) na više diskova paralelno, na način koji je definiran u tkzv. RAIDpolju, koje smo odabrali prilikom inicijalizacije RAID polja. Postoji nekoliko standardnh RAID polja odkojih svako ima neke prednosti i mane.

Osim toga postoje dvije mogućnosti kreiranja RAID polja :

Softverski (na nivou operativnog sustava ili drivera) i●

Hardverski (za što je potreban RAID kontroler).●

Softversko RAID polje se kreira iz operatvnog sustava a hardversko iz RAID kontrolera tj. posebnekartice poput ove na slici dolje

Na slici je RAID kontroler tvrtke “Adaptec” (Adaptec 2100S) .

Slika prikazuje hardverski RAID kontroler za spajanje SCSI tvrdih diskova pomoću 68 pin-skogkonektora/kabela, preko kojeg je moguće spojiti do 15 tvrdih diskova. Ovaj RAID kontroler se namatičnu ploču spaja preko PCI sabirnice.

Na njemu je vidljivo slijedeće:

(A) SCSI disk kontoler (AIC-7892B)●

(B) CPU/ASIC RAID kontolera koji je zadužen za kreiranje RAID polja i druge operacije potrebne za●

RAID(C) RAM Memorija za cache podataka (u gornjem dijelu kartice) (32MB PC-100 ECC - proširivo)●

(D) 68pin-ski SCSI konektor za spajanje SCSI tvrdih diskova●

Page 38: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Kako to radi ?U slučaju upotrebe hardverskog RAID kontrolera prilikom uključivanja računala nakon što seinicijalizira BIOS na matičnoj ploči inicijalizira se i BIOS RAID kontrolera. Tada je potrebno ući u BIOSRAID kontrolera te kreirati željeno RAID polje (ili više njih) sa dostupnim tvrdim diskovima spojenim naRAID kontroler. Ako raspolažemo s većim brojem tvrdih diskova, moguće je kreirati više RAID polja tj.tkzv. Logičkih diskova. Uglavnom nakon što snimimo konfiguraciju RAID polja koja smo kreirali, RAIDkontroler počinje s inicijalizacijom RAID polja, u potpunosti (što može trajati i satima [ovisno o RAIDpolju i broju i brzini tvrdih diskova]) ili samo djelomično.U slučaju da se RAID polja ne moraju potpuno inicijalizirati (što je slučaj kod novijih RAID kontrolera),možemo rastartati računalo. Potom će BIOS-u računala biti prijevljen po jedan Logički disk za svakoRAID polje koje smo kreirali. RAID polja će se kasnije u pozadini inicijalizirati nakon startanjaoperativnog sustava a ti logički diskovi će nam biti vidljivi kao običan fizički tvrdi disk (po jedan zasvako RAID polje koje smo kreirali), koji možemo normalno particionirati i formatirati.U slučaju kada se RAID polje mora inicijalizirati unutar BIOS-a RAID kontrolera, potrebno je pričekatida se proces završi, što može potrajati satima osvisno o veličini i tipu RAID polja. Nakon inicijalizacijese restarta računalo, svako RAID polje (Logički disk) se prijavljuje BIOS-u matične ploče, te je vidljivooperativnom sustavu kao običan fizički tvrdi disk (isto kao u gornjem slučaju).

U slučaju upotrebe softverskog RAID polja koje u Linuxu odrađuje tkzv. LVM2 odnosno “LogicalVolume Manager verzije 2” nakon podizanja operativnog sustava pomoću alata koji dolaze sa LVM2paketom, kreiramo željeno RAID polje na cijelom tvrdom disku ili željenim particijama. Nakon što seto polje inicijalizira, možemo ga normalno formatirati i dalje koristiti kao da je u pitanju normalnaparticija na običnom tvrdom disku.

LVM2 donosi i druge mogućnosti osim samog RAID polja, a neke od njih su :

Mogućnost dodavanja i vađenja diskova u radu (ako to podržava hardver),●

Povećavanje veličine bilo kojeg logičkog diska (engl. resize),●

Izrada sigurnosne kopije (engl. Backup) cijelog logičkog diska u radu, bez zaustavljanja, korištenjem●

tkzv. “Snapshot” metode,…●

U oba slučaja preporuča se definiranje tvrdog diska čija je jedina namjena promjena neispravnogdiska, kada greška nastupi. Tvrdi disk koji namjenimo za taj zadatak naziva se engl. “Hot Spare” disk.U slučaju greške na nekom od diskova, automatiziran proces rekreiranja (engl. Rebuild) RAID poljakreće s upotrebom ovog “Hot Spare” diska, koji nakon završetka procesa postaje funkcionalan diskkoji je član RAID polja u kojem je bio neispravan disk. Tada se neispravan disk može izvaditi izamijeniti (uglavnom novi zamjenjeni disk tada postaje novi “Hot Spare”).

Koja su najčešća RAID polja u upotrebi i koje su im prednosti i mane?Danas u upotrebi imamo nekoliko RAID polja od kojih svako ima neke prednosti i neke mane.

Standardna RAID poljaVažno je znati da hardverski ili softverski RAID kontroleri kod inicijalizacije RAID polja (između ostalihstvari), sve tvrde diskove u polju dijele na male blokove podataka (ovisno o RAID kontroleru i/ilisoftveru) koji postaju najmanje jedinice za zapis podataka, praktično kao što su “clusteri” tj. blokovi

Page 39: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 39/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

na datotečnom sustavu. Veličina ovih blokova podataka u RAID terminologiji se zove “engl. Stripesize”. Ovo je bitno jer svi diskovi u nekom RAID polju moraju imati istu podijelu na najmanje blokovepodataka koji se mogu čitati ili pisati tj. nad njima provoditi određene logičke operacije. Najčešćaveličina “Stripe size”-a je 64kB ali ju je moguće i mijenjati (ne preporuča se ukoliko ne znate zašto toradite) prije nego se krene u proces inicijalizacije RAID polja.

Standardna RAID polja su:

RAID 0RAID 0 ili “Stripe” polje sastoji se od minimalno 2 diska. Ukupan kapacitet ovog polja jednak je zbrojukapaciteta svih diskova u polju. U ovo polje moguće je dodavati diskove različitih veličina ali polje ćese kreirati tako da će na svim diskovima biti iskorišten samo kapacitet od najmanjeg diska.

Ako imamo diskove od 120 GB , 320 GB i 500 GB, ukupni kapacitet će biti 120 GB x 3 = 360 GB.

Zapisivanje podataka u RAID 0 polje radi se tako da se podaci koji se trebaju zapisati dijele na blokove(pr. 64kB) i pri tome se razlomljeni blokovi podataka pravilno zapisuju (raspoređuju) na sve diskove upolju.

Ako imamo dva diska kao na slici dolje. Podaci se tada raspoređuju i zapisuju praktično pola na jedana pola na drugi disk i to redom kako dolaze. Ako su recimo blokovi (Stripe size) od 64kB na svakomdisku kao najmanje jedinice za zapisivanje i imamo 128kB podataka za zapisati, prvih 64kB će bitizapisano na prvi disk a drugih 64kB na drugi disk i tako redom.

Ovo polje ne daje nam nikakvu sigurnost odnosno redundanciju. Ako se pokvari bio koji disk u polju,SVI podaci će biti izgubljeni. Najveća prednost ovog polja je u njegovoj brzini i kapacitetu. Kodzapisivanja se podaci snimaju na sve diskove paralelno,a isto tako se i čitaju sa svih diskovaparalelno,zbog toga je brzina RAID 0 polja najveća od svih RAID polja.

RAID 1RAID 1 ili “Mirror” odnosno zrcalno polje, sastoji se od minimalno 2 diska. U ovom polju moguće jeimati i više od 2 diska uz isto ograničenje za kapacitet kao za RAID 0 (kapacitet najmanjeg diska sekoristi na svim diskovima). Ovo polje radi identičnu (zrcalnu) kopiju svih podataka s prvog diska na

Page 40: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

drugi (ili na više njih) i to također kako podaci dolaze, razbijanjem u blokove (engl. Stripe).

Ako imamo 2 diska u RAID 1 polju i zapisujemo pr. 128kB podataka događa se slijedeće:

Prvih 64kB se zapisuje na prvi i drugi disk●

Drugih 64kB se zapisuje na prvi i drugi disk●

Ovime imamo zapisano svih 128kB na oba diska (pogledajte sliku).

Ovo polje daje nam najveću sigurnost jer su svi podaci zapisani na prvi disk zapisani i na drugi disk (ilikoliko ih već ima u polju). Brzina čitanja je veća jer se podaci mogu čitati u parovima (polovinapodatka s prvog a pola s drugog diska). Na brzinu čitanja najviše utiće implementirana funkcionalnostčitanja s više diskova paralelno što ovisi o RAID kontroleru tj. softveru koji to odrađuje (lošijeimplementacije daju i lošije rezultate). Brzine kod zapisivanje su jednake brzini jednog diska jer sepodaci moraju istovremeno zapisivati na sve diskove u polju.

RAID 5Za ovo RAID polje potrebna su nam minimalno 3 tvrda diska. Ovo je prvo specifično polje koje koristiračunanje pariteta niza podataka, koje je procesorski zahtjevnije od RAID 0 i RAID 1 polja. Ovdje doizražaja dolaze hardverski RAID kontroleri koji imaju poseban procesor (CPU) koji izračunava paritet zasvaki niz podataka.

Zamislimo RAID 5 polje sa 4 tvrda diska kao na slici:

Page 41: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 41/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Uzmimo standardni “Stripe size” od 64kB. U ovom polju sa 4 tvrda diska svaki niz podataka se lomi na3 dijela (ukupan broj diskova -1). Zamislimo da moramo zapisati 192kB podataka u prvom nizu:

Zapisuje se prvih 64kB na prvi disk●

Zapisuje se drugih 64kB na drugi disk●

Zapisuje se trećih 64kB na treći disk●

Potom se radi logička XOR operacija prvih, drugih i trećih 64kB podataka i dobija se rezultat (engl.Parity), koji je veličine 64 kB i zapisuje se na četvrti disk. U slijedećem nizu podataka razlomljenipodaci se zapisuju na prvi, drugi i četvrti disk a paritet se izračunava i zapisuje na treći disk. Kodsvakog slijedećeg niza podataka, paritet se izračunava i zapisuje na neki drugi disk, tako da ako namse pokvari bilo koji disk u polju, od preostalih diskova se pomoću paritetnih podataka mogu izračunati(restaurirati) podaci koji nedostaju.

Kako radi računanje pariteta (XOR funkcija) ?

Prvo se podsjetimo XOR logičke operacije

Ulaz A Ulaz B XOR rezultat0 0 00 1 11 0 11 1 0

Dakle ako su oba ulaza jednaka, rezultat je nula (0) a ako su ulazi različiti, rezultat je jedan (1).

Vratimo se na naša 4 diska i “Stripe”-ove od 64kB. Pošto nam je 64kB preveliki broj, za razmijevanjelogike rada, zamisliti ćemo da je “Stripe size” samo 4 bita.

Zamislimo da moramo zapisati slijedeći podatak : 101111100110.

Pošto se on mora razlomiti na 3 dijela po 4 bita (4. bita nam je Stripe size) to će izgledat ovako : 10111110 0110.

Sada svaki od ovih razlomljenih dijelova ide prema diskovima:

Page 42: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Podaci za disk 1 : 1011

Podaci za disk 2 : 1110

Podaci za disk 3 : 0110

Radi se XOR prvi disk: 1011 i drugi disk: 1110 = 0101

Sada se radi XOR prvog rezultata: (0101) sa trećim diskom i dobivamo paritetne podatke: 0011

Dakle na četvrti disk se zapisuje paritet : 0011

Sada imamo slijedeće zaipise u prvom nizu zapisivanja:

Disk 1 Disk 2 Disk 3 Disk 41011 1110 0110 0011

…i tako redom, drugi niz, pa paritet na disku 3, pa slijedeći niz s paritetom na disku 2, pa slijedeći nizs paritetom na disku 1, … … …

Zamislimo da nam se pokvario “Disk 2”.

Dakle imamo stanje:

Disk 1 Disk 2 Disk 3 Disk 41011 _ _ _ _ 0110 0011

Sada se ponovno radi XOR operacija, redom (Disk1, Disk 3, Disk 4):

Disk 1: 1011 XOR Disk 3: 0110 rezultat = 1101

Rezultat prvog XOR: 1101 XOR Disk 4: 0011 = 1110

Dobili smo rezultat odnosno sadržaj bloka tj. “Stripe”-a koji je neispravan : 1110 , što je točno.

Što se događa kada imamo nesipravan disk ?Ako nemamo “Hot Spare” disk ili nismo zamijenili neispravan disk, RAID kontroler će raditi XOR u radu( u letu), za svaki niz podataka, tako da će sve raditi i dalje (djelomično usporenije) ali ako nam seistovremeno pokvari još jedan disk, izgubiti ćemo SVE podatke.

Ako smo ipak imali “Hot Spare” disk, RAID kontroler će poćeti s procesom restauriranja podataka(engl. rebuild) na “Hot Spare” disk. Ako nismo imali “Hot Spare” disk, kada izvadimo neispravni disk iubacimo ispravni, proces restauriranja će se pokrenuti. Ovaj proces kreće uglavnom automatski, uradu. Pošto sada RAID kontroler mora preračunati podatke za svaki niz podataka na cijeloj površinisvih tvrdih diskova, to može potrajati satima ili čak danima - u slučaju da imamo velike količinepodataka.

Karakteristike RAID 5 polja

Brzina čitanja je prilično velika jer se podaci mogu čitati s više diskova istovremeno. Brzina pisanja je

Page 43: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 43/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

manja od RAID 0 i RAID 1 polja jer se podaci zapisuju na više diskova paralelno ali se za svaki nizpodataka mora izračunavati i paritet.

Ukupni kapacitet cijelog polja je jednak zbroju svih diskova minus jedan (-1) disk. RAID 5 poljedozvoljava ispad samo jednog tvrdog diska iz polja i to bilo kojeg diska u polju.

RAID 6Za ovo RAID polje potrebna su nam minimalno 4 tvrda diska. Ovo polje je slično RAID 5 polju s time dase ovdje računaju dva (2) pariteta koja se razmještaju na različite tvrde diskove u polju.Zamislimo osnovno RAID 6 polje poput ovoga na slici

Paritet se razmješta po istom principu kao kod RAID 5 polja, svaki puta se za svaki novi niz podatakapomiće na druge diskove (s time da ovdje imamo dva pariteta, dakle svaki na svoj disk). Ovo poljediskova stoga omogućava ispad do dva bilo koja tvrda diska u polju.

Ukupni kapacitet polja jednak je zbroju kapaciteta svih diskova minus kapacitet dva diska (-2). Brzinačitanja je slična ili nešto sporija kao kod RAID 5 polja (ovisno o implementaciji). Brzina pisanja takođerovisi o implementaciji (hardver [i to koji ?] / softver) a također je slična ili lošija od RAID 5 zbogdvostrukog izračunavanja pariteta.

Ugnježđena RAID poljaČesto se koriste i kombinacije RAID 1,5 i 6 sa RAID 0 poljem. Ovakva polja nazivamo ugnježđenimRAID poljima (engl. Nested) ili hibridnim RAID poljima.

RAID 0+1Ovo RAID polje često se naziva i RAID 01. Ovo polje (engl. Mirror of Stripes) nastaje kreiranjem dva iliviše RAID 0 polja na dva ili više diskova koja se stavljaju unutar većeg RAID 1 polja. Konačno RAID 1polje se prijavljuje kao logički disk BIOS-u matične ploče računala.

Kapacitet je jednak polovici kapaciteta svih diskova. Ovo polje otporno je na ispad cijelog jednog RAID0 polja (pošto RAID 0 ispada uslijed kvara samo jednog diska), a RAID1 (engl. Mirror) zrcaljenje štiti saidentičnom kopijom koja se nalazi na drugom RAID 0 polju. U slučaju ispada dva diska iz različitihRAID 0 polja, cijelo RAID 01 polje se ruši i gube se SVI podaci. Proširivanje ovog polja (kapacitetom) jenepraktično (i skoro neizvedivo u praksi) jer zahtjeva manipulacije na svim RAID 0 poljima.

Page 44: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Brzina čitanja je prilično velika pošto se podaci mogu čitati sa svih diskova istovremeno (dio podatakas asvakog diska). Brzina pisanja je također prilično velika pošto se podaci mogu čitati sa svih diskovaistovremeno (dio podataka sa svakog diska).

Za rad ovog polja potrebno je minimalno 4 diska, kao što je vidljivo na slici:

RAID 10Ovo RAID polje često se naziva i RAID 10. Za rad ovog polja potrebno je minimalno 4 diska Ovo poljeje slično RAID 01 odnosno prema logici rada, potpuno obrnuto. Po dva diska se dodaju u RAID 1 polje(engl. Mirror) odnosno zrcalno se kopiraju jedan na drugi. Druga dva diska također, u svoj RAID 1 , aisto tako i treća, četvrta , peta ili x-ta dva diska. Potom se kreira RAID 0 (engl. Stripe) koij povezujesve zrcaljene parove diskova u jedan veliki logički disk.

Kapacitet je jednak polovici kapaciteta svih diskova. Ovo polje otporno je na ispad bilo kojeg diskaunutar bilo kojeg RAID1 (engl. Mirror) zrcanog para diskova na bilo kojem RAID 1 paru diskova.

Brzina čitanja je prilično velika pošto se podaci mogu čitati sa svih diskova istovremeno (dio podatakasa svakog diska). Brzina pisanja je također prilično velika pošto se podaci mogu čitati sa svih diskovaistovremeno (isto dio podataka sa svakog diska). Dodatna prednost je i u tome što neki RAIDkontroleri omogućavaju proširenje kapaciteta vršnog RAID 0 polja (koje je vidljivo kao logički disk)dodavanjem novog para RAID 1 (engl. Mirror) diskova.

Primjer rada RAID 10 polja je vidljiv na slici:

Page 45: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 45/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Osim navedenih ugnježđenih RAID polja, moguća su i polja 100, 50 i 60

Izvor slika iz ovog poglavlja je “Wikipedia” : http://en.wikipedia.org/

File System

File System (datotečni sustav) je zadužen za rad s datotekama i direktorijima, tj. zadužen je za njihovosmještanje na tvrdi disk.Pošto smo rekli da je u UNIX-u/Linux-u sve datoteka (file), samim time ovajdio sustava dobiva dodatno na važnosti.

Za razliku od Windows operatvnih sustava, Linux ne koristiFAT/FAT32/extFAT ili NTFS datotečnisustav kao primarni za rad odnosno za samsistem, na sistemskom disku/particiji.

Moderni Linux-i koriste : ext3 i ext4 , XFS ili druge napredne datotečne sustave.

Osnovne prednosti gore navedenih modernih Linux datotečnih sustava su:

Ne postoji fragmentacija podataka●

Oni su transakcijski (journaling) datotečni sustavi●

Podržavaju dodatne napredne mogućnosti●

Od čega se sastoji UNIX/Linux file system

Page 46: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Unix/Linux Datotečni sustav se sastoji od :

direktorija,●

datoteka i●

I-node tablica●

I-node tablica sadrži zapis za svaku datoteku i direktorij:

Vlasnika (owner),●

Grupu (group),●

Prava čitanja, pisanja i izvršavanja (r w x ),●

…●

Struktura datoteka i direktorija:

Razlikuju se velika i mala slova●

Koristi se hijerarhijska struktura direktorija●

Struktura direktorija je u obliku stabla●

Osnovne grane su već definirane i rezervirane za operacijski sustav●

Imena mogu biti dužine 255 znakova, mogu se koristiti svi znakovi osim:●

! @ $ ^ & * , ; ‘ ` “( ){ } [ ] < > | / \ ? ~ razmak

Struktura sistemskih direktorija

Struktura sistemskih direktorija je definirana unutar FHS-a (Filesystem Hierarchy Standard).

Prikaz osnovne strukture sistemskih direktorija (koja je hijerarhijska) u svakom UNIX/Linux sustavu, jevidljiv na slici:

Što se nalazi u kojem od osnovnih direktorija:

/bin - Osnovne sistemske naredbe (binaries), koje moraju biti dostupne i u single user mode-u rada

/boot – sve što je potrebno za boot (podizanje) Linux sustava [boot loader-i : kernel, initrd , …]

/dev - svi uređaji (devices) i hardver te posebne datoteke

/etc – Sve konfiguracijske datoteke

Page 47: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 47/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

/home – direktoriji korisnika (home directory)

/lib – sve sistemske biblioteke te biblioteke za razne aplikacije(library)

/proc – virtualni file system koji daje informacije o svim procesima i poruke kernela

/usr - ovdje se nalaze višekorisnički (multiuser) programi , podaci itd.

/var – varijabilni (promijenjivi) podaci , poput log datoteka, cache datoteka i sl.

Direktoriji i datoteke

Tipovi direktorija i datoteka su vidljivi kod izlistanja datoteka i/ili direktorija [potpuno lijeva oznaka]

Dakle pogledajmo nekoliko specifičnih datoteka (/dev/sda /dev/tty /etc/rc.d/rc.local/etc/rc.d/rc3.d/S58ntpd) i što nam govore njihove oznake.

ls -al /dev/sda /dev/tty /etc/rc.d/rc.local /etc/rc.d/rc3.d/S58ntpd

brw-rw---- 1 root disk 8, 0 Apr 8 15:57 /dev/sdacrw-rw-rw- 1 root tty 5, 0 Apr 7 18:15 /dev/ttylrwxrwxrwx. 1 root root 14 Dec 2 11:34 /etc/rc.d/rc3.d/S58ntpd ->../init.d/ntpd-rwxr-xr-x. 1 root root 882 Dec 2 11:34 /etc/rc.d/rc.local

Koje sve oznake postoje za datoteke i direktorije :

[ d ] Direktorij

[ - ] Obična datoteka

Osim standardnih, postoje i posebne vrste datoteka, koje predstavljaju logičke jedinice, poput:

/dev/zero (generator nula [0] )●

/dev/random (generator slučajnih brojeva [random] )●

…●

Osim logičkih jedinica, postoje i dodatne vrste posebnih datoteka u koje spadaju:

[ l ] Simbolički link[ p ] “Named pipe” datoteka ili samo “pipe” (FIFOs)[ s ] Socket file

Te druga grupa koja predstavlja neki odnosno sami uređaj (device file):

[ b ] Block : barata s IO, blokovima podataka[ c ] Character device: barata s IO, karakterima (znakovima)

Iz nekoliko primjera izlistanja direktorija i datoteka će sve biti puno jasnije:

Page 48: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

ls -al /

drwxr-xr-x 20 root root 4096 Jun 13 12:53 ./drwxr-xr-x 20 root root 4096 Jun 13 12:53 ../drwxr-xr-x 2 root root 4096 Mar 25 2011 bin/drwxr-xr-x 2 root root 4096 Oct 6 1997 boot/drwxr-xr-x 17 root root 69632 Nov 11 15:20 dev/drwxr-xr-x 19 root root 4096 Nov 11 15:20 etc/drwxr-xr-x 2 root root 4096 Oct 6 1997 home/drwxr-xr-x 4 root root 4096 May 4 2011 lib/dr-xr-xr-x 17 root root 0 Nov 11 15:20 proc/drwxr-xr-x 15 root root 4096 Jun 13 12:53 usr/drwxr-xr-x 11 root root 4096 Jun 13 12:53 var/

Ovdje su vidljivi samo obični direktoriji [ d ]

ls -al /dev/sda1

brw-rw----. 1 root disk 8, 1 Nov 11 17:36 /dev/sda1

Ovdje smo odabrali posebni (device file) koji predstavlja uređaj, tj. konkretno prvi SATA ili SCSI HardDisk i to njegovu prvu particiju (o toime kasnije). On ima oznaku [ b ]

ls -al /dev/ttyS0 crw-rw----. 1 root dialout 4, 64 Nov 11 17:36 /dev/ttyS0

Ovdje je također odabran poseban (device file), koji je konkretno prvi serijski port na računalu(RS232). Oznaka je [ c ]

ls -al /dev/cdrom

lrwxrwxrwx. 1 root root 3 Nov 11 17:36 /dev/cdrom -> sr1

Sada je vidljiv simbolički link, koji za CDROM uređaj pokazuje na fizički uređaj oznake sr1. Oznakasimboličkog linka je [ l ]

Napredno

Named pipe

Kreiranje “Named pipe” datoteke imena my_pipe

mkfifo my_pipe

Nakon što smo kreirali “Named Pipe” , Kreirati ćemo “pipe” koji će komprimirati sve što uđe u njega istvoriti komprimiranu datoteku imena komprimirana.datoteka.gz:

gzip -9 -c <my_pipe> komprimirana.datoteka.gz &

Page 49: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 49/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Sada ćemo poslati svoju datoteku (datoteka.txt) da se komprimira

cat datoteka.txt> my_pipe

Brisanje “Named pipe” datoteke (isto kao i za bilo koju drugu datoteku)

rm my_pipe

Kao što smo i prije rekli, sada postaje jasno da “Everything is a file” ima sve više smisla.

Slijedi još nekoliko primjera.

Dakle /dev/zero je posebna datoteka koja je generator nula (0), koju ćemo iskoristiti za generiranjenula unutar jedne datoteke, imena sve.nule.txt . Osim toga želimo da veličina datoteke bude 1024byte-a.

Za rad s ovom posebnom datotekom koristiti ćemo program disk dump ( dd ), koji se koristi zakonvertiranje i kopiranje datoteka, a pošto je u Unix/Linux svijetu sve datoteka, to ćemo i iskoristiti.

Ali prvo da vidimo koje sve prekidaće naredba dd ima.

Lista nekoliko osnovnih prekidaća:

if - input file (ulazna datoteka)of – output file (izlazna datoteka)bs - koliko byte-a da čita/piše odjednom (ovo se smatra jednim blokom podataka)count - koliko blokova podataka (iz pr. bs ) dozvoljavamo da se obradi

Ograničiti ćemo veličinu bloka ( bs=1024 ) na 1024 byte-a i to samo s jednim ponavljanjem (count=1 )

dd if=/dev/zero of=/neki-direktorij/sve.nule.txt bs=1024 count=1

1+0 records in1+0 records out1024 bytes (1.0 kB) copied, 5.8944e-05 s, 170.4 MB/s

Drugi primjer će biti kopiranje cijele diskete (/dev/fd0) u datoteku : /neki-direktorij/disketa.img

dd if=/dev/fd0 of=/neki-direktorij/disketa.img

U slijedećem primjeru ćemo koristiti posebnu datoteku, koja generira slučajne brojeve, vrlo brzo (/dev/urandom) i pomoću nje generirati datoteku veličine 1MB, imena test.file i to u blokovimaod 1024 byte-a , 1k (1000) puta.

dd if=/dev/urandom of=/neki-direktorij/test.file bs=1024 count=1k

1024+0 records in1024+0 records out

Page 50: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

1048576 bytes (1.0 MB) copied, 0.0715332 s, 140.7 MB/s

PATH (Putanje)

Putanja do neke datoteke može biti:

Apsolutna (počinje od root direktorija / ) : pr datoteka messages.: /var/log/messages●

Relativna (počinje od trenutnog direktorija) pr.: nalazimo se u /var pa je putanja do datoteke:●

log/messages

Ovlasti (permissions & modes)

Svaki direktorij i datokeka imaju određene ovlasti (permissions). Dakle svaki puta kada se kreira nekadatoteka ili direktorij, za nju se zapisuju određene ovlasti i to : tko je njen vlasnik (owner) te kojojgrupi korisnika pripada (group) te ovlasti za sve ostale (all users)

Ovlasti (permissions) se mijenjaju sa: chown,te se definiraju :

Prema vlasniku (owner)●

Prema grupi (group)●

Prema svima ostalima (all users)●

Osim toga postoje i prava pristupa i rada, koja se povezuju za gore nevadene korisnike/gupu/sveostale , koja se mijenjaju sa naredbom : chmod.

Moguće je definirati slijedeća prava pristupa

Pravo čitanja (Read)●

Pravo pisanja (Write)●

Pravo izvršavanja/pokretanja (Execute)●

Pravo čitanja (Read) omogućava samo čitanje određene datoteke (ne i njeno mijenjanje).

Pravo pisanja (Write) omogućava i mijenjanje sadržaja datoteke. Za razliku od Windows operativnihsustava,u UNIX/Linux sustavima se pravo izvršavanja (pokretanja) datoteke dodjeljuje tako da seodređenoj datoteci dodaje pravo izvršavanja (Execute), bez obzira na ekstenziju datoteke. U Windowssvijetu datoteka mora imati ekstenziju pr. .exe , da bi bila izvršna U UNIX/Linux-u to nije potrebno,dovoljno je samo execute pravo na bilo koju datoteku (naravno definirano za vlasnika, grupu ili za sveostale) !.

Što nam govore ovlasti

Permissions (ovlasti) se čitaju od lijevo na desno !.

Izlistanjem ( ls ) direktorija /bin iz root ( / ) direktorija će sve biti jasnije:

drwxr-xr-x 20 root root 4096 Jun 13 12:53 /bin

Page 51: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 51/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Pogledajmo samo oznake s lijeve strane

d rwx r-x r-x …. ….. … .. .. . . .. .. . . . .. . .. .. . .. ….. /bin

Prvi znak ima posebno značenje (pogledati poglavlje Direktoriji i datoteke) [u ovom slučaju je to znakd ]

Prvi niz od tri znaka (oktet) su za vlasnika (owner) [u ovom slučaju rwx ]●

Drugi niz od tri znaka (oktet) su za grupu (group) [u ovom slučaju r-x ]●

Treći niz od tri znaka (oktet) su za sve ostale (others) [u ovom slučaju r-x]●

Napomena : postoji i iznimka za zadnja tri znaka – umjesto Execute [ x ] , mogu biti i

s ili t : executable and setuid( s ) / setgid( s ) [omogućava korisnicima koji nisu “root” (admini) da●

mogu izvršiti/pokrenuti [execute] datoteku ]sticky ( t ) [ rename (preimanovanje) ili brisanje (delete) datoteke može raditi samo vlasnik (owner)●

]

Izlistavanjem sa naredbom ls , vidljive su nam simboličke oznake ovlasti (r, w , x), osim njih mogućeje mijenjati ih i na druge načine. Usporedba je vidljiva na slici:

Pr Kao root (admin) kreirali smo datoteku test:

-rw-r--r-- 1 root root 24 2014-07-03 09:54 test

Na koje načine možemo mijenjati ovlasti :

1. Opisno

Za koga mijenjamo ovlasti●

[ a ] svi (i vlasnik i grpa i svi ostali)❍

[ u ] vlasnik (owner : user)❍

[ g ] grupa (group)❍

[ o ] svi ostali (other)❍

Page 52: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Operator : dodajemo ili oduzimamo ovlasti●

[ + ] dodajemo❍

[ - ] oduzimamo❍

Koje ovlasti mienjamo●

[ r ] čitanje (read)❍

[ w ] pisanje (write)❍

[ x ] izvršavanje/pokretanje (execute)❍

Primjer , Omogućimo svima ostalima (other) mogućnost izvršavanja datoteke test

chmod o+x test

Pogledajmo sada što smo dobili (x na kraju):

ls -al

-rw-r--r-x 1 root root 24 2014-07-03 09:54 test*

2. Oktalno , prema tablici , za svakog korisnika, zbrajajući vrijednosti:

r w x4 2 1

Mapiranje (računanje) simboličkih u oktalne oznake, prema prethodnoj tablici :

1 2 3

(2+1)4 5

(4+1)

6

(4+2)

7

(4+2+1)x w w+x r r+x r+w r+w+x

Dakle mapiranje o oktalni prikaz se označava za svakog od : “owner/user”, “group” i “other users”.

Primjerice 755 znači:

7 za vlasnika (owner) - tj r+w+x●

5 za grupu (group) - tj. r+x●

5 za sve ostale (other users) - tj. r+x●

Odnosno opisno 755 znači da:

7 : vlasnik (owner) ima prava čitanja (r) , pisanja (w) i izvršavanja/pokretanja (x)●

5 : grupa (group) ima prava čitanja (r) i izvršavanja/pokretanja (x)●

5 : svi ostali (other users) ima prava čitanja (r) i izvršavanja/pokretanja (x)●

Primjer : Promijenimo za :

vlasnika (owner), da može čitati, zapisivati i izvršavati/pokretati: r+w+x (7)●

grupu (group), da može samo čitati i pokretati: r+x (5)●

za sve ostale (others), da mogu samo čitati i pokretati : r+x (5)●

chmod 755 test

Page 53: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 53/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Sada pogledajmo kako to izgleda:

ls -al

-rwxr-xr-x 1 root root 24 2014-07-03 09:54 test*

Rad s direktorijima i datotekama

Pogledajmo primjer izlistanja sadržaja direktorija :

Što je ovdje vidljivo ?

(1) Ovlasti/permissions (objašnjeno nešto prije)●

(2) Brojčana vrijednost :●

Za datoteke broj hard linkova na tu datoteku (obično 1)❍

Za direktorije broj poddirektorija +2 (ako ih nema onda je 2 , ako sadrži 1 poddirektorij onda je❍

vrijednost 3 , … )(3) Tko je vlasnik (root)●

(4) Kojoj grupi pripada (server)●

(5) Veličina :●

Za datoteke – veličina datoteke❍

Za direktorij – veličina za metapodatke za datoteke unutar tog direktorija (obično je to default❍

veličina bloka datotečnog sustava [ext2/3/4/]) i može rasti(6) Datum zadnje izmjene●

(7) Ime datoteke/direktorija●

umask

Kada kreiramo bilo koji direktorij ili datoteku ona se kreira s određenim (definiranim) ovlastima, kojese čitaju iz sistemske varijable umask(default je 022). Obično je definirana u : /etc/profile

Vrijednost umask varijable oduzima se od:

Za direktorije : maksimalna. vrijednosti za direktorije je 777, računica je : 777 – 022 = 755●

Za datoteke : maksimalna vrijednosti za datoteke je 666, računica je : 666 – 022 = 644●

Page 54: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ovo znači da će kod svakog kreiranja novog direktorija, direktorij biti kreiran sa ovlastima 755 , dok ćenovokreirane datoteke imati ovlasti 644.

Pimjeri:

Promijeni vlasnika u pero i grupu u server za datoteku /root/podaci/test.sh

chown pero:server /root/podaci/test.sh

Promijeni ovlasti na datoteci /root/podaci/test.sh da bude i izvršna (read+write+execute), samo zavlasnika

chmod 0744 /root/podaci/test.sh

Promijeni vlasnika (pero) i grupu (server) za direktorij /root/podaci te sve poddirektorije i sve datotekerekurzivno :

chown -R pero:server /root/podaci

File System detaljnije

Da bi razumjeli detalje o file sustavu, potrebno je razumjeti neke činjenice o datotekama.

Svaka datoteka se na nivou file sustava sastoji od dva dijela:

Dijela s podacima “Data”: - ovaj dio je asociran s I-node unosom u I-node tablici.●

Dijela s imenom datoteke “Filename (1)”●

Dakle ovako izgleda datoteka na Linux File Sistemu (pr. ext/3/4 ) ili na Unix file sustavu (pr. UFS):

Hard Linkovi

Podaci unutar svake datoteke se zapravo nalaze unutar i-node-a. Hard link nastaje kada se u dijeludatoteke u kojem je i-node broj koristi i-node broj unutar kojeg su zapisani podaci od neke drugedatoteke:

Page 55: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 55/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Prednosti i mane Hard Linkova:

Mogu se kreirati samo unutar jedne particije jer i-node tablica postoji za svaki filesystem/particiju zasebno

Brisanjem izvorne datoteke podaci ostaju sve dok postoji barem jedan hard link●

Mogu se linkati samo datoteke, ne i direktoriji uz iznimku:●

Kada se kreira svaki novi direktorij ( mkdir ) kreira se hard link:❍

Jedan za roditeljski (parent) ( .. ) = ima isti inode broj kao parent■

Jedan za trenutni direktorij ( . ) = ima novi inode broj■

Teže ih je primjetiti i pratiti jer se mora gledati broj linkova i i-node broj❍

Primjeri:

Kreirajmo datoteku imena text.txt

echo “probni text”> text.txt

Napravimo Hard link na nju (nova datoteka će se zvati hard.link)

ln text.txt hard.link

Provjerimo kako to izgleda ( i prekidač naredbe ls nam prikazuje I-node broj)

ls –ali5636110 drwxr-xr-x 2 root root 4096 Nov 13 09:47 .5636097 dr-xr-x---. 4 root root 4096 Nov 13 09:28 ..5636111 -rw-r--r-- 2 root root 5 Nov 13 21:29 text.txt5636111 -rw-r--r-- 2 root root 5 Nov 13 21:29 hard.link

Pogledajte I-node brojeve od datoteka : text.txt i hard.link.

Page 56: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Soft linkovi

Soft Linkovi zapravo pokazuju na već kreiranu datoteku ili direktorij s apsolutnom ili relativnomputanjom.

Logička shema je vidljiva na slici:

Prednosti i mane Soft Linkova

Fleksibilniji su jer pokazuju na putanju (path) do datoteke ili direktorija●

Mogu se koristiti i između file sustava (diskova ili particija)●

Brisanjem originala (source) soft link postaje neupotrebljiv (pokazuje i dalje na nepostojećudatoteku/direktorij).

PrimjeriNastavak na primjere od Hard Linkova: Napravimo Soft link na text.txt (nova datoteka će se zvatisoft.link)

ln -s text.txt soft.link

Provjerimo kako to izgleda

ls -ali

5636110 drwxr-xr-x 2 root root 4096 Nov 13 09:47 .5636097 dr-xr-x---. 4 root root 4096 Nov 13 09:28 ..5636111 -rw-r--r-- 2 root root 5 Nov 13 21:29 text.txt5636111 -rw-r--r-- 2 root root 5 Nov 13 21:29 hard.link5636112 lrwxrwxrwx 1 root root 8 Nov 13 09:34 soft.link -> text.txt

Uočimo razliku u I-node broju soft linka : datoteka imena : soft.link

Page 57: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 57/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Timestamps (oznake vremena)

Za svaki direktorij i datoteku zapisuju se i oznake vremena:

modify : kada je kreiran ili mijenjan●

access : kada mu je pristupano●

change : kada je promijenjen status (i-node unosi)●

Primjeri:

Nastavljamo s već kreiranim datotekama. Provjerimo kako izgledaju oznake vremena:

ls -al

drwxr-xr-x 2 root root 4096 Nov 13 19:03 .dr-xr-x---. 4 root root 4096 Nov 13 19:28 ..-rw-r--r-- 2 root root 5 Nov 13 19:29 hard.linklrwxrwxrwx 1 root root 8 Nov 13 19:34 soft.link -> text.txt-rw-r--r-- 2 root root 5 Nov 13 19:29 text.txt

Pogledajmo vremenske unose malo detaljnije (naredba stat) (pr. datoteka text.txt)

stat text.txt

File: `text.txt';Size: 5 ; Blocks: 8 ; IO Block: 4096 ; regular fileDevice: 801h/2049d ; Inode: 5636111 ; Links: 2Access: (0644/-rw-r--r--);Uid: ( 0/root) ; Gid: ( 0/root)

Access: 2013-11-13 19:47:34.519854892 +0000Modify: 2013-11-13 19:29:17.359728861 +0000Change: 2013-11-13 19:20:19.372604340 +0000

Kako promijeniti vremena pristupa/promijene datoteke:

promijeniti ćemo: access (-a) i modify (-m) vrijeme u :●

Godina : 2013 , Mjesec : 11 , Dan : 11 , Sat : 12 , minuta : 01 , sekunda : 10.

touch -a -m -t 201311111201.10 text.txt

Provjerimo sada vremena:

stat text.txt

File: `text.txt'Size: 5 Blocks: 8 IO Block: 4096 regular file Device: 801h/2049dInode: 5636111 Links: 2 Access: (0644/-rw-r--r--)Uid: ( 0/ root) Gid: ( 0/ root)

Page 58: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Access: 2013-11-11 12:01:10.000000000 +0000Modify: 2013-11-11 12:01:10.000000000 +0000

Change: 2013-11-13 19:20:19.372604340 +0000

File Descriptors

File descriptori su indeksi na unose u kernelu, prema (otvorenim) datotekama.Postoje ih tri vrste:

stdout - standardni izlaz●

stdin - standardni ulaz (1)●

stderror - standardna greška (2)●

Svaki puta kada otvorite datoteku (file), operacijski sustav kreira određenu vezu (stream) prema tojdatoteci.File descriptor zapravo predstavlju tu vezu (stream) prema toj otvorenoj datoteci. U slučaju rada uterminalu, postoje gore navedene tri vrste posebnih file descriptor-a. Ova tri file descriptora ( stdin ,stdout , stderror ) su spojena na terminal a ne na datoteke (kao ostali file descriptori-i) . To značida kada nešto pišete u terminalu, sve što pišete ide na stdin a ono što vidite na ekranu odlazizapravo na stdout .

Napredno:

Kao što smo rekli, svaki puta kada operativni sustav otvara neku datoteku, sustavkreira file descriptor. Iz sigurnosnih i razloga iskorištavanja resursa sustava, ograničen je maksimalanbrojfile descriptor-a, koji se može definirati za svakog korisnika.U svakodnevnom radu, posebnoservisa/daemona, ponekada nam je potrebno saznati koliko file descriptora su oni zauzeli. Nezaboravimo da je u Linux-u sve datoteka (file). Tako da svaki program pristupa priličnom brojudatoteka, poput :

Log datoteka●

biblioteka (library)●

/dev/ datoteka (hardver ili posebne datoteke)●

Unix/Network Socket datoeka●

Drugih programa i njihovih datoteka●

Prvo što moramo saznati je koji proces ID (PID) ima servis/daemon/program koji pratimo.To možemo na nekoliko načina. Recimo da se radi o procesu imena sshd (to je SSHServer)1. Način : Upotrebom naredbe za izlistavanje aktivnih Linux procesa ps :

ps -aux |grep sshd

root 18670 0.0 0.0 66612 1228 ? Ss Feb22 0:00 /usr/sbin/sshd

Page 59: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 59/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

PID se nalazi u drugom stupcu (u našem slučaju je to PID: 18670).

2. Način : Upotrebom naredbe pidof , koja nam na osnovu imane procesa vrati PID tog procesa:

pidof sshd

18670

Dakle imamo PID: 18670.

Sada moramo saznati koliko datoteka (file descriptora) ima otvoren naš PID 18670.Za namjenu prebrojavanja file descriptora za određeni PID je tzadužena naredba lsofListu ćemo dobiti ovako:

lsof -a -p 18670

... ... ...

... ... ...

… i to datoteku po datoteku.

Pošto nama treba samo broj otvorenih file descriptora, koristiti ćemo naredbu word count tj. wc -l ,da nam ih (samo) prebroji.Tako da ćemo pokrenuti:

lsof -a -p 18670 |wc -l

39

I konačno smo dobili rezultat : 39 otvorenih file descriptor-a.

Želimo li vidjeti koliko file descriptora je u upotrebi na cjielom sustavu, to ćemo postići na sličannačin:

lsof | wc -l

334

Dakle cijeli Linux na kojem smo pokrenuli ovu naredbu koristi 334 file descriptora.

Ulimit

Naredba ulimit daje nam mogućnost definiranja sistemskih ograničenja.

Ograničenja File Descriptor-aPošto smo pričali o file deskriptorima, pogledajmo koja ograničenja nam sustav daje u startu. Zanimanas koliko file descriptora možemo imati (postoje soft i hard limiti). Limit na file descriptor-e značizapravo koliko datoteka možemo imati istovremeno otvorenih

Page 60: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

(tj. na koliko ih istovremeno možemo raditi ).

Pogledajmo Soft limit na file descriptore (ograničenje do kojeg možemo ići bez ikakve poruke sustava) .

ulimit -Sn1024

Pogledajmo Hard limit na file descriptore (ograničenje preko kojeg ne možemo ići [sustav nam nećedopustiti]):

ulimit -Hn4096

U slučaju da nam je potrebno raditi s većim brojem datoteka (file desciptora-a), podignimo im HardLimit.Ovo je potrebno za neke velike baze podataka i sl. namjene. Mi ćemo trenutno podići limit na 8192 filedescriptora.

ulimit -n 8192

Da bi ova promjena ostala stalna, potrebno ju je zapisati u neku sistemsku startup skriptu (ovisno onašim potrebama).

Što još možemo mijenjati s ulimit naredbom i koji su njeni drugi prekidači:

-a All current limits are reported-c The maximum size of core files created-d The maximum size of a process’s data segment-e The maximum scheduling priority (“nice”)-f The maximum size of files written by the shell and its children-i The maximum number of pending signals-l The maximum size that may be locked into memory-m The maximum resident set size (has no effect on Linux)-n The maximum number of open file descriptors (most systems do not allow this value to be set)

Ograničenja procesa

U slučaju potrebe za ograničenjem maksimalnog broja procesa koje pojedini korisnik može pokrenuti,također možemo koristiti naredbu ulimit ili definirati ograničenja za pojedinog korisnika na nivoucijelog sustava. Prvo pogledajmo koja su standardna ograničenja (Soft i Hard Limiti):

Soft limit na broj procesa:

ulimit -Su773215

Hard limit na broj procesa

Page 61: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 61/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

ulimit -Hu773215

Sada ćemo za korisnika ucenik1 , postaviti Hard i Soft limite na max. broj pokrenutih procesa i to:maksimalno 100 procesa kao soft limit.maksimalno 500 procesa kao hard limit.

Editirajmo datoteku sa vi programom: /etc/security/limits.confDodati ćemo slijedeće linije na kraj datoteke:

ucenik1 soft nproc 100ucenik1 hard nproc 500

Nakon što snimimo ove promjene i korisnik se ponovno logira, provjerimo stanje:

ulimit -Su100

ulimit -Hu500

Vidimo da su ograničenja aktivna.

Baratanje s file deskriptorima u kernel memorijiŽelimo li vidjeti više informacija o file deskriptorima na nivou kernel-a, možemo to napraviti sa:

sysctl fs.file-nrfs.file-nr = 1184 0 9897041

Što to znači:

1184 alociranih file handel-ova u Kernel memoriji●

0 nekorištenih ali alociranih (težimo da je 0)●

9897041 maksimalni nroj file handlera za cijeli sustav (koliko kernel uopće može●

alocirati).

Postoji i drugi način provjere i konfiguriranja file deskriptora, pomoću direktne provjere ili upisa ukernel parametre.Podjetimo se da je /proc specifičan direktorij, koji sadrži parametre kernela. Provjerimo koliko kernelmožre alocirati file deskriptora (isti podatak od primjera gore) :

cat /proc/sys/fs/file-max9897041

Na sličan način to možemo i promjeniti, pr. smanjimo ih sa: 9 897 041 na 1 000 000.

echo "1000000"> /proc/sys/fs/file-max

Page 62: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ako to stavimo u neku datoteku,koja se podiže kod podizanja sustava, to će postati permanentno,alito se preporuča upotrebom sysctl metoda (pogledjte slijedeće poglavlje).

Sysctl (napredno)

Sysctl je interface za baratanje s parametrima sustava, na nivou kernela. U ovo se uklapaju i primjeris file descriptorima iz prethodnog poglavlja, koje možemo permanentno konfigurirati korištenjemsysctl metoda. U datoteci /etc/sysctl.conf se nalaze upisani parametri kernela koji će bitiučitani kod svakog podizanja sustava.

Primjeri

Dodajmo slijedeće linije (preporuča se još jedna linija s opisom), u /etc/sysctl.conf :

# Maximum number of open files permitedfs.file-max = 1000000

Postavili smo vrijednost na 1 000 000 file deskriptora.Ako želimo provjeriti što se sve može konfigurirati preko sysctl pokrenimo:

sysctl -a

Ako želimo ponovno postaviti vrijednosti koje smo definirali u /etc/sysctl.conf

sysctl -p /etc/sysctl.conf

Provjera kapaciteta ( i dostupnosti ) diskova i particija te direktorija

Za provjeru slobodnog prostora odnosno kapaciteta diskova i particija ili zauzeća direktorija, koristi senekoliko naredbi (jednu smo već upoznali):

lsblk prikazuje nam logičku podjelu i dostupnost “Block Device” uređaja.

df ili Disk Free - prikazuje nam koliko prostora (kapaciteta) imamo zauzeto/slobodno na svim mount-anim particijama.

du ili Disk Usage prikazuje nam zauzeće prostora za određeni direktorij i/ili poddirektorije.

lsblk

Pogledajmo prvo naše diskove odnosno logičku sliku diskova i particija uz ostale blok uređaje (BlockDevice) , pomoću naredbe: lsblk

lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT

Page 63: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 63/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

sr0 11:0 1 1024M 0 romsda 8:0 0 120G 0 disk├─sda1 8:1 0 100G 0 part /└─sda2 8:2 0 20G 0 part [SWAP]

Dakle imamo:

sr0 uređaj - to je naš DVD/CD ROM

sda to je naš SATA tvrdi disk, kapaciteta 120GB , koji ima dvije particije:

sda1 : Prva ili root ( / ) odnosno sistemska particija, kapaciteta 100 GB

sda2 : Druga partcija koja je swap particija, kapaciteta 20GB

Naredba lsblk ima dosta prekidača, od kojih ćemo spomenuti prekidać -f koji će nam prikazatidetalje o datotečnom sustavu (File System):

lsblk -f

NAME FSTYPE LABEL UUID MOUNTPOINT

sda├─sda1 ext4 48edf714-2642-4cb2-82ac-b62043ec1055 /└─sda2 swap 6c82a0a2-964a-4e94-a326-b1c75bcaec57 [SWAP]

Vidljivo je da je je sda disk podjeljen na dvije particija (sda1 i sda2) te da niti jedna od njih nemanazive (LABEL) , vidljivi su UUID-i i u što je mount-ana određena particija (MOUNTPOINT), detaljnije :

NAME : daje nam ime uređaja (u našem slučaju /dev/sda1 znači sda1) → Pogledajte poglavlje odiskovima i particijama

FSTYPE : daje nam vrstu odnosno tip datotečnog sustava → Pogledajte poglavlje o diskovima iparticijama - u našem primjeru

sda1 koristi ext4 datotečni sustav (ovo je sistemska particija)

sda2 koristi swap datotećni sustav (ovo je swap particija)

LABEL : oznaka particije (proizvoljno opisno ime - može i ne mora biti upisano)

UUID : jedinstveni identifikator svake particije

MOUNTPOINT : označava u što je mount-ana particija → Pogledajte poglavlje o diskovima iparticijama

df

Naredba df prikazuje nam zauzeće datotečnog sustava (File System) koji smo mount-ali. Navedenanaredba ima veći broj prekidaća od kojih ćemo koristiti nekoliko:

Page 64: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Standardno se ispisuje zauzeće u blokovima podataka od1KB.

-h ili -g : prikaz u GB (Human Readable format)

-i : prikaz prema i-node tablicama (iskorišteno/slobodno)

-T : prikaz uz ispis o vrsti/tipu datotečnog sustava (File System)

Primjeri

1.Ispišimo zauzeće mount-anih particija :

df

Filesystem 1K-blocks Used Available Use% Mounted on/dev/sda1 100158332 2751504 97406828 2.7% /

Vidljivo je da nam je prikaz u blokovima od 1KB pomalo nepraktičan

2. Ispišimo zauzeće u nama (ljudima) malo ljepšem formatu (-h):

df -h

Filesystem Size Used Avail Use% Mounted on/dev/sda1 100G 2.7G 97.3G 2.7% /

3. Prijašnjem primjeru dodajmo i ispis vrste datotečnog sustava (-T):

df -Th

Filesystem Type Size Used Avail Use% Mounted on/dev/sda1 ext4 100G 2.7G 97.3G 2.7% /

du

Naredba du (Disk Usage) daje nam ispis zauzeća diskovnog prostora za određeni direktorij odnosnosve njegove poddirektorije rekurzivno.

Neki od prekidaća su :

-h : ili “Human Readable” format - lakši za razumjevanje

-s : ili “Summary” odnosno sumariziran ispis bez ispisivanje svake datoteke i poddirektorija zasebno

Primjeri

1. Ispišimo samo sumarizirano (-s) zauzeće cijelog direktorija /home/ i svih njegovih poddirektorija

Page 65: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 65/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

zajedno (dakle koliko svi korisnici imaju u svojim “home” direktorijma) ali “lijepo” formatirano (-h):

Ova operacija može potrajati, ovisno o količini poddirektorijai datoteka

du -hs /home/

54M /home/

Shell

Shell ili komandnolinijska ljuska je sučelje između korisnika i Operativnog sustava, iz nje pokrećemorazne programe i upravljamo cijelim sustavom.

Postoji ih veći broj,od kojih svaki ima neke specifičnosti, neki od češće korištenih su:

Bourne shell ( sh )●

Bourne-Again shell ( bash )●

Z shell ( zsh )●

C-shell ( csh )●

T Shell ( tcsh )●

Korn shell ( ksh )●

Kako izgleda Shell (komandna linija):

root@Server1 :~$

Logiranje / odlogiranje

Da bi se uopće mogli logirati u sistem vaš korisnički računa ( account) mora biti kreiran od straneadministratora (root korisnika)

Razlikuju se velika i mala slova●

Minimalna dužina imena accounta je 6 znakova (u pravilu)●

Lozinka se mijenja naredbom : passwd●

Izlaz iz sistema se ostavaruje slijedećim naredbama: exit , logout●

Ili kombinacijom tipki : CTRL d

Rad s korisničkim računom

Svaki korisnički račun ima svoj ID (uid)●

Svaki korisnički račun pripada barem jednog grupi●

Svaka grupa ima svoj ID (gid)●

Page 66: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Kako provjeriti pripadnost korisničkog računa grupi/grupama korisnika:

id -a

uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon)

Dakle ovdje vidimo da je korisnik root… da pripada primarnoj grupi (gid) root… da pripada i dodatnim grupama (groups) : bin i daemon

Osnovne kontrolne naredbe

CTRL a - skoči na početak reda●

CTRL e - skoči na kraj reda●

CTRL c - prekini izvršavanje naredbe●

CTRL d - odlogiraj se●

CTRL d - još znači i pošalji End of File trenutnom procesu●

CTRL ALT Fn - prebaci se na n-ti terminal (n=1…6)●

CTRL z - privremeni prekid rada procesa (suspend)●

Shell varijable

Komandnolinjska ljuska (shell) omogućava nam upotrebu varijabli poput varijabli u nekomprogramskom jeziku.

Razlikujemo nekoliko vrsta varijabli:

Environment varijable●

“Obične” shell varijable●

“Obične” varijable vrijede samo unutar shell-a u kojem su pokrenute, Ako unutar postojećeg shell-apokrenemo novi shell (tkzv. subshell), variable se neće nasljediti. U tu svrhu možemo koristiti“Environment varijable”, koje se prenose u sve pod shell-ove.

Primjeri

Kreirajmo sistemsku varijablu TEST , koja će imati vrijednost korisnik1

TEST=korisnik1

Ispišimo ju (vrijednost varijable dobivamo sa $)

echo $TEST

korisnik1

Postavimo ovu varijablu kao Environment varijablu (za to se koristi naredba export), da bi ju kasnijemogli koristiti u novom subshell-u :

Page 67: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 67/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

export TEST

Pokrenimo podljusku (subshell) i ispišimo varijablu

bash

echo $TEST

korisnik1

Obrišimo postavljenu varijablu iz početnog shell-a (za to se koristi naredba unset)

unset TEST

Aliasi

Aliasi se koriste za dodjeljivanje niza naredbi nekoj novoj ( alias ) naredbi. Možemo ih zamisliti kaopostavljanje nama razumljive naredbe koja u pozadini poziva cijeli niz naredbi, nama kao korisnicima,zbog bržeg/lakšeg rada

Primjer

Stvorimo alias imena ll koji će pokrenuti naredbu ls -alhi

alias ll=´ls -alhi´

Za izlistanje svih postavljenih aliasa koristi se naredba alias:

Primjer

Izlistajmo sve trenutno postavljene aliase (na kraju je i naš novo kreirani):

alias

alias egrep='egrep --color=auto'alias fgrep='fgrep --color=auto'alias ll='ls -alhi'

Za brisanje aliasa koristi se naredba unalias

Primjer

Obrišimo alias ll

unalias ll

Page 68: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Konfiguracija komandne ljuske (shell)

Kod startanja shell-a , prvo se učitava globalna konfiguracijska datoteka, mi ćemo govoriti o bashshell-u.Globalnu konfiguracijsku datoteku ( /etc/profile) konfigurira administrator i kod logiranja se onaprva učitava.

Potom se učitava konfiguracijska datoteka specifična za svakog pojedinog korisnika, iz njegovog homedirektorija (akopostoji), datoteka je imena : .bashrc .

Napomena:

Vrijednosti postavjene u /etc/profile datoteci mogu se u .bashrcpromjeniti samo ako nisupostavljene kao readonly od strane administratora. Dakle moguće je konfigurirati određene vrijednosti(koje se definiraju u /etc/profile) da budu readonly, tako da ih korisnici u svojoj konfiguraciji (.bashrc) ne mogu zaobići ili mijenjati.

Pamćenje izvršenih (starih) naredbi [ History ]

Od trenutka logiranja na sistem a to je i trenutak kada se pokreće komandna ljuska (Shell) pamte sesve naredbe koje smo pozvaliNaredbe koje smo pozivali moguće je:

pozvati ponovno●

pretraživati●

Naredbom history izlistavamo sve naredbe koje smo pozivali u prošlosti.

Moguće je definirati koliko zadnjih naredbi će sistem pamtiti:

set HISTSIZE = xxx Podešavanje koliko zadnjih naredbi ( xxx ) će se pamtiti

Primjer

History size je obično postavljen na pamćenje zadnjih 1.000 naredbi, to ćemo povećati na 5.000

set HISTSIZE = 5000

Još neke od korisnih mogućnosti su :

!123 pozovi naredbu iz povijesti pod rednim brojem 123●

!ls pozovi zadnju naredbu iz povijesti koja počinje sa ls●

CTRL r – pretraži history (ovo važi za bash shell) nakon ovog se upisuje pojam/naredba koja se traži●

iz history-ja

Tko je sve logiran i što radi ?

S vremena na vrijeme želimo saznati tko nam je sve logiran na sustav (u shell) i što sve radi.

Page 69: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 69/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

To možemo saznati pomoću dvije naredbe:

who prikazuje nam tko je sve logiran na sustav (uz još neke informacija)

w prikazuje tko je logiran u sustav te koje je sve procese pokrenuo

who

Naredba who daje nam detaljne informacije o korisnicima logiranim u sustav

Najčešći prekidaći ove naredbe su:

-a Ispiši sve detalje

-b ispiši samo informaciju kada se operativni sustav startao

-m ispiši samo kombinaciju hostname (ime računala) i username (korisničko ime)

-r ispiši trenutni Runlevel

-u ispiši koji su sve korisnici logirani

Primjeri

1. Ispiši sve dostupne podatke (-a)

who -a

system boot 2014-07-31 20:05 run-level 3 2014-07-31 20:05LOGIN tty1 2014-07-31 20:06 1184 id=1LOGIN tty2 2014-07-31 20:06 1186 id=2LOGIN tty3 2014-07-31 20:06 1188 id=3LOGIN tty4 2014-07-31 20:06 1190 id=4LOGIN tty5 2014-07-31 20:06 1192 id=5LOGIN tty6 2014-07-31 20:06 1194 id=6root + pts/0 2014-07-31 20:17 . 1199 (10.0.2.2)ucenik + pts/1 2014-07-31 20:38 . 1419 (10.0.2.2)

Opis:

Vidljivo je :

da je operativni sustav startan 31.07.2014 u 20:05.h.●

da je trenutni Runlevel 3●

da su logirani korisnici root i ucenik , preko pts/0 i pts/1 (udaljeni pristup - u ovom slučaju ssh),●

vremena kada su se logirali i njihove IP adrese (10.0.2.2)

2. Ispiši samo tko je sve logiran na sustav

Page 70: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

who -u

root pts/0 2014-07-31 20:17 . 1199 (10.0.2.2)ucenik pts/1 2014-07-31 20:38 00:01 1419 (10.0.2.2)

w

Naredba w daje nam informacije o tome koje procese (programe) je pokrenuo koji logirani korisnik.

Samim pokretanjem (bez argumenata) naredbe w , dobivamo informacije u svim logiranimkorisnicima te procesima (programima) koje su pokrenuli-

Primjeri

1. Ispišimo sve korisnike logirane na sustav te procese koje su pokrenuli:

w

20:56:20 up 51 min, 2 users, load average: 0.00, 0.00, 0.00

USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 10.0.2.2 20:17 0.00s 0.47s 0.03s wucenik pts/1 10.0.2.2 20:38 3.00s 0.11s 0.06s/usr/bin/mc -P /tmp/mc-ucenik/mc.pwd.1423

Opis:

Vidimo da je korisnik root pokrenuo naredbu w (to smo mi)

Također je vidljivo da je korisnik ucenik pokreuo naredbu mc (Midnight Commander) s određenimprekidačima, uz sve detalje o proesima i vremenu pokretanja naredne/procesa te IP adrese s koje sespojio.

2. Ispišimo podatke o pokrenutim procesima samo za korisnika ucenik

w ucenik

21:00:44 up 55 min, 2 users, load average: 0.00, 0.00, 0.00USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATucenik pts/1 10.0.2.2 20:38 4:27 0.11s 0.06s /usr/bin/mc-P /tmp/mc-ucenik/mc.pwd.1423

Procesi

Svaki proces je instanca pokrenutog programa/naredbe na linux (bilo kojem)operativnom sustavu. Naredbama ps i top možemo izlistati procese.Svaki proces identificira niz parametera od kojih nas sada zanimaju samo ovi:

Page 71: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 71/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

UID - tko je vlasnik procesa●

PID - jedinstvena identifikacija (dodjeljuje ju sistem)●

STIME - vrijeme kada je proces pokrenut●

TIME - vrijeme koliko je CPU radio na procesu●

CMD - je naredba koja čini taj proces●

Primjer upotrebe ps naredbe

Primjer upotrebe naredbe ps koja ispisuje pokrenute procese.

ps -ef

UID PID PPID C STIME TTY TIME CMDroot 1 0 0 Nov14 ? 00:00:01 /sbin/initroot 2 0 0 Nov14 ? 00:00:00 [kthreadd]root 3 2 0 Nov14 ? 00:00:00 [migration/0]root 4 2 0 Nov14 ? 00:06:03 [ksoftirqd/0

Primjer upotrebe ps naredbe sa prekidačima (-auxf) koji nam daju prikaz stabla procesa :

ps -auxf

USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.0 19236 1452 ? Ss Oct01 0:00 initroot 2 0.0 0.0 10644 584 ? S<s Oct01 0:00 \_/sbin/udevd -droot 3 0.0 0.0 183556 1444 ? Sl Oct01 0:00 \_/sbin/rsyslogd -i /var/run/syslogd.pid -c 5root 300 0.0 0.0 66620 1228 ? Ss Oct01 0:00 \_/usr/sbin/sshdroot 301 0.0 0.0 96244 3956 ? Ss 09:29 0:00 | \_sshd: root@pts/0

Ovdje vidimo da je init proces pokrenuo sve ostale procese (koji su pod njim). Isto tako vidimo da jeproces sshd (PID 300) pokrenuo podproces (PID 301)

Primjer upotrebe top naredbe

Primjer upotreba naredbe top koja daje puno više informacija o svakom pokrenutom procesu

top

15:24:20 up 1 day, 5:45, 2 users, load average: 0.00, 0.00, 0.00Tasks: 143 total, 1 running, 142 sleeping, 0 stopped, 0 zombieCpu(s): 1.3%us, 0.2%sy, 0.0%ni, 98.4%id, 0.1%wa, 0.0%hi, 0.0%si,0.0%st

Mem: 16332608k total, 7480892k used, 8851716k free, 89428k buffers

Page 72: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Swap: 16776184k total, 0k used, 16776184k free, 1695512k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND1 root 20 0 19348 1524 1212 S 0.0 0.0 0:01.27 init2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd3 root RT 0 0 0 0 S 0.0 0.0 0:00.01 migration/04 root 20 0 0 0 0 S 0.0 0.0 6:03.23 ksoftirqd/0

Opis značenja:1. PID - Process ID – jedinstveni identifikacijski broj (ID) svakog procesa2. USER - Username koji je pokrenuo taj proces3. PR - Prioritet procesa (od -20 za “najbitnije” do 20 manje “važne” procese)4. NI - “Nice” vrijednost modificira prioritet procesa5. VIRT -Ukupna količina virtualne memorije koju proces koristi6. RES - Rezident-na veličina (kb) – “Non-swapped” fizička memorija koju proces koristi7. SHR - “Shared memory size” (kb) – količina dijeljene memorije koju proces koristi (dijeljenamemorija je memorja koju mogu alocirati i drugi procesi)8. S - “Process status” – moguće vrijednosti:

R - “Running” – pokrenuto●

D - “Sleeping” - (nije ga moguće prekinuti - “interrupted”)●

S - Sleeping (moguće ga je prekinuti – “interrupted”)●

T - “Traced or stopped”●

Z - “Zombie” ili “hung” process●

%CPU - Postotak CPU vremena koje je proces koristio u vrijeme kada je naredba top zadnji putaosvježena%MEM - Postotak memorije (RAM) koje je proces koristio u vrijeme kada je naredba top zadnji putaosvježenaTIME+ -Kumulativno CPU vrijeme koje su proces i njegovi podprocesi (child/djeca)koristiliCOMMAND -Ime procesa ili naredbe koja je pokrenuta (pritisni c za prebacivanje između imena procesai putanje naredbe koja je pokrenula proces)

Prioriteti i procesi

Na primjeru CPU (Centralni procesor) sa jednom jezgrom, možemo vidjeti da je CPU u svakomtrenutku tj. najmanjoj jedinici vremena, zapravo u stanju obraditi samo jedan proces.Ono što se zapravo događa je da, prvo sistem (ili naknadno korisnik) može za svaki proces odreditiodređeni prioritet, prema kojemu se računa koliko vremena, unutar jednog segmenta vremena će CPUodrađivati koji proces. Praktično CPU radi preklapanje (switching) ili takozvani “context switching”između više procesa. Možemo ovo zamislitit kao da svaki CPU ima malu sklopku koju prebacuje sprocesana proces (pogledajte sliku) Pojednostavljeno to izgleda ovako: Ako imamo 2 procesa:

prvi prioriteta 90% a●

drugi 10%●

CPU u svakom segmentu vremena (neka je to pr. 10 us) obrađuje prvi proces 9µs a drugi 1 µs , uslijedećem segmentu vremena ( slijedećih 10 µs ) ponovno i tako dalje .

Page 73: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 73/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Analogija ovome je vidljiva i u višenitnim (multi threading) programima (oni su na nivou operatinogsustava isto procesi) koji su još jedan nivo iznad ove priće ali kada dođu do nivoa obrade na CPU –ponovno se dešava ista stvar. Dakle svaka nit (thread) dobija određeni prioritet tj. obrađuje se samodjelić vremena, pa se prebacuje na drugu nit i tako u krug (dok se ne odrade sve niti, pa ponovno izpočetka).

Dakle da sumiramo:

Svaki pokrenuti proces ima određeni prioritet●

Standardni prioritet je 0●

Prioriteti se kreću od -20 do 20 (19)●

Najveći prioritet je -20 a najmanji 20●

Primjeri:

Pokreni proces (skriptu test.sh) s prioritetom 10:

nice -n 10 test.sh

ili

nice -10 test.sh

Recimo da smo već pokrenuli skriptu ili proces gore i da naknadno želimo promijenitinjen prioritet u 5, njen PID je 10456

renice 5 -p 10456

Page 74: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Želimo li naknadno promijeniti prioritet svih procesa čiji je vlasnik pero i svih čiji suvlasnici iz grupe korisnici u prioritet 10

renice 10 -u pero -g korisnici

Procesi i signali koje im možemo poslati

Svakom procesu koji je pokrenut možemo poslati određene signale (postoji ih na desetke),●

najkorišteniji su:SIGHUP (br. 1) ”Hang UP” obično se proces stopira ili za daemon-e restarta i učita konfiguraciju❍

(re-read)SIGKILL (br. 9) nasilno zaustavi proces❍

SIGTERM (br. 15) standarno zaustavi proces❍

Listu podržanih signala možete vidjeti sa : kill -lOvo je lista podržanih signala na linux kernel 2.6.x:

1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9)SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16)SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20)SIGTSTP 21) SIGTTIN 22) SIGTTOU23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29)SIGIO 30) SIGPWR 31)SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+439)SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTM IN+8 43) SIGRTMIN+9 44)SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49)SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53)SIGRTMAX-11 54)SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60)SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2 63) SIGRTMAX-1 64) SIGRTMAX

Nakon što se logirate na Linux sustav te pokrenete neku naredbu unutar shell-a, ta naredba/programće se izvršavati sve dok ne izađete is shell-a (namjerno ili ako vam se veza na udaljeni shell [pr. prekossh protokola]) prekine. Dakle kod odlogiranja se svim procesima koje ste pokrenuli šalje SIGHUP (1)signal i oni se svi gase. Ako imate potrebu da se neki proces (naredba/program) nastavi izvršavati inakon štose odlogirate, to se može postići na slijedeći način (recimo da se radi o našoj skripti imenavazno_za_rad.sh ).

nohup vazno_za_rad.sh &

Na ovaj način smo pokrenuli našu skriptu u background-u/pozadini [ & ] te je zbog pokretanja sanohup otporna na odlogiranje.

Primjeri:

Stopiraj (SIGHUP [1]) proces PID 13245 (ovo je neka skripta koju smo pokrenuli)

kill -1 13245

Page 75: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 75/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Stopiraj (SIGTERM [15]) – ovo je default proces PID 13245 (ovo je neka skripta koju smo pokrenuli)

kill -15 13245

ili

kill 13245

Nasilno stopiraj (SIGKILL [9])proces PID 13245 (ovo je neka skripta koju smo pokrenuli)

kill -9 13245

Jobs

Unix / Linux Poslovi (Jobs)

Važno za znati je da Shell kreira novi posao (job) svaki puta kada se pokrene neka naredba. Provjerustanja poslova možeom napraviti korištenjem naredbe jobs .

Poslovi mogu biti u slijedećim stanjima:

Foreground (ovo je standardno stanje) [ fg ]●

Background (pokretanje u pozadini-ako se pokreće sa & na kraju) [ bg ]●

Stopped (Stopiran ali se može pokrenuti u Foreground ili Background)●

Terminated (Zaustavljen)●

U primjerima koji slijede biti će jasno što su poslovi i kako se barata s njima.

Primjeri:Kreiraj datoteku koja će se popunjavati slučajnim znakovima

dd if=/dev/urandom of=/root/slucajni.znakovi.txt

Stopiraj ovaj posao (job)

CTRL z[1]+ Stopped dd if=/dev/urandom of=/root/slucajni.znakovi.txt

Vidljivo je da ovaj posao im ID br. 1.

Pokrenuti ćemo ga ponovno u pozadini (background)

bg 1

Stopirati ćemo ovaj isti posao (job) br 1 [prije broja posla mora biti znak %]

stop %1

Page 76: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Prebaciti ćemo ga ponovno u normalan rad (foreground)

fg 1

I na kraju ćemo ga stopirati

CTRL c

Meta znakovi

Meta znakovi su većinom nealfanumerički znakovi ili karakteri koji imaju posebno značenje ukomnadnoj ljusci (shell) ili drugim programima. Meta znakove često koristimo za regularne izraze.

Neki od meta znakova su :

< > * ? [ ] $ & - ! ; | “ ‘

Wildcards znakovi su podgrupa Meta znakova i zamjenjuju alfanumeričke znakove, ato su :

* ? ! [ ] -

Značenje nekih meta znakova

Wildcards znakovi :* označava bilo koji i bilo koliko znakova (i 0 njih)? označava točno jedan bilo koji znak[ ] označava listu znakova pr. [a-zA-Z]

Meta znakovi :

; pokretanje više naredbi jedna za drugom

& pokretanje programa u pozadini (background)

Regularni izrazi

Regularni izrazi predstavljaju zapise koji se odnose na određeni uzorak.

Koriste se za pronalaženje i baratanje s određenim uzorcima●

Koriste ih i razni programi :●

vi ,❍

more ,❍

grep ,❍

sed ,❍

awk ,❍

…❍

Page 77: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 77/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Primjeri

1.Izlistajmo datoteke (naredba ls ) čije ime počinje sa d

ls -al d*

-rw-r--r-- 1 root root 320 Nov 15 11:28 datoteka.txt

2.Izlistajmo datoteke čije ime počinje s datoteka.tx i ima još jedan bilo koji karakter (alfabet)

ls -al datoteka.tx?

-rw-r--r-- 1 root root 320 Nov 15 11:28 datoteka.txt

Regularni izrazi i metaznakovi

Ponekad želimo isključiti djelovanje metaznakova, za to služi metaznak \Pr.: želimo ispisati test* ali pošto je * metaznak, sustavu nekako moramo naznačiti da ga ipak samoispiše

echo test\*

test*

Posebni metaznakovi

Posebni metaznakovi su :

Jednostruki navodnici ‘ ’ isključuju interpretaciju svih meta znakova osim ! \●

Dvostruki navodnici “ “ isključuju interpretaciju svih metaznakova osim $ (koji služi za supstituciju●

varijabli) te ! ` \Jednostruki kosi navodnici ` ` - sve što se nalazi unutar njih će biti izvršeno kao naredba ili niz●

naredbi

Primjeri

Postaviti ćemo varijablu TEST na vrijednost 1

TEST=1

Potom ćemo Ispisati samu varijablu preko “ ”

echo “$TEST”1

Zatim ćemo ju Ispisati preko ' '

Page 78: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

echo '$TEST'$TEST

! Ovdje je vidljivo to da smo sa upotrebom ' ' , ispisali samu varijablu a ne njenu vrijednost !

Ispisati ćemo komentar i pozvati drugu naredbu , pomoću “ ” i ` `Obratite pažnju da je sve što je bilo upisano između ` ` pokrenuto kao naredba.

echo "komentar `ls -al datoteka.txt`"

komentar -rw-r--r-- 1 root root 0 Nov 21 09:49 datoteka.txt

A sada ćemo isto pokrenuti pomoću ' '

echo 'komentar `ls -al datoteka.txt` '

komentar `ls -al datoteka.txt`

I sada sve isto ali pomoću “ ”

echo 'komentar "ls -al datoteka.txt" '

komentar "ls -al datoteka.txt"

Tablica sa primjerima upotrebe metakaraktera u često korištenim Unix/Linux programima/naredbama:

Page 79: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 79/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Preusmjeravanje i “Pipe”

Preusmjeravanje (redirekcija), radi se pomoću meta znakova « < > »

Default ulaz je stdin (tipkovnica)●

Default izlaz je stdout (ekran)●

Pipe ( | ) preusmjerava standardni izlaz jedne naredbe u standardni ulaz druge, bez potrebe zakorištenjem privremenih datoteka.

Na primjerima ćemo vidjeti preusmjeravanje i “pipe” na djelu.

Primjeri preusmjeravanjaPreusmjeri naredbu u datoteku: Pr. Preusmjeri izlistanje direktorija (ls -al) u datotekunaredba > datoteka.txt

ls -al> datoteka.txt

Page 80: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Kada koristimo standardno preusmjeravanje ( > ) sadržajdatoteke u koju preusmjeravamo ispis neke naredbe, biti ćesvaki puta prebrisan a potom popunjen novim sadržajem.

Ako želimo koristiti preusmjeravanje ali želimo nadodati svoj (novi) sadržaj na kraj datoteke, tadamoramo koristiti »

ls -al>> datoteka.txt

Preusmjeri datoteku u naredbu : naredba < datoteka.txt

cat <file1> file2

Ulaz cat naredbe je file1 a izlaz se preusmjerava u file2

Primjeri “Pipe”-aIz prethodnog primjera preusmjeravanja ispisa direktorija u datoteku ćemo prebrojati koliko riječisadrži ta datoteka.Za prebrojavanje riječi koristiti ćemo naredbu wc (word count).Ona standardno ispisuje:

broj novih redova broj riječi byte count

ls -al> datoteka.txt

cat datoteka.txt | wc

7 58 320

Dakle broj redova je 7 , broj riječi je 58 i byte count je 320.

Neime s naredbom cat smo ispisali sadržaj datoteke tj poslali ga na “standard output” , koji je znakpipe | proslijedio slijedećoj naredbi kao njen ulaz tj “standard input” te ga je naredba wc uzela iobradila te nam dala rezultat svoje obrade.

Sada ćemo istu stvar iz pretodnog primjera još više pojednostaviti.

ls -al | wc

7 58 320

Osnovne Linux naredbe

Popis nekih od osnovnih Linux/Unix naredbi:

cd - promijeni direktorij (change directory)ls - ispis direktorija/datoteka (list directory contents)

Page 81: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 81/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

pwd - ispis trenutnog direktorija (Print Working Directory)date - ispis datuma i satacal - ispis kalendara (calendar)man - ispis uputa (manual) za neku naredbu (pr.: man date) [objašnjeno u zasebnom poglavlju]

Primjeri

1. Uđimo u direktorij /home , potom u /home/ucenik (naredba cd)

cd /home

cd ucenik

1.1 Vratimo se iz /home/ucenik/ u /home/ (naredba cd )

cd ..

2. Pogledajmo gdje se nalazimo (naredba pwd)

pwd

/home

3. Izlistajmo sadržaj direkorija (naredba ls sa prekidačem -al):

ls -al

total 12drwxr-xr-x. 3 root root 4096 Jul 22 21:30 .dr-xr-xr-x. 21 root root 4096 Jul 24 16:50 ..drwx------ 6 ucenik ucenik 4096 Jul 24 18:49 ucenik

4. Provjerimo trenutni datum i vrijeme (naredba date):

date

Thu Jul 24 19:03:49 CEST 2014

5. Ispišimo kalendar za tekuči mjesec (naredba cal)

cal

July 2014Su Mo Tu We Th Fr Sa 1 2 3 4 5 6 7 8 9 10 11 1213 14 15 16 17 18 1920 21 22 23 ''24'' 25 2627 28 29 30 31

Page 82: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

6. Ispišimo upute (manual [man]) za naredbu cal:

man cal

CAL(1) BSD General Commands ManualCAL(1)

NAME cal - displays a calendar

SYNOPSIS cal [-smjy13] [[[day] month] year]

DESCRIPTION Cal displays a simple calendar. If arguments are not specified, the current month is displayed. The options are as follows:

-1 Display single month output. (This is the default.)

-3 Display prev/current/next month output.

-s Display Sunday as the first day of the week.

-m Display Monday as the first day of the

... ... ...

Naredbe za rad s direktorijima

mkdir IME-DIREKTORIJA - kreiraj direktorij imena IME (make directory)●

mv IME1 IME2 (move) prebaci direktorij IME1 u IME2●

mv ime-datoteke ime-dir (move) prebaci datoteku u direktorij●

mv staro-ime novo-ime (move) prebaci datoteku prvog imena u drugo ime●

rmdir IME – obriši direktorij imena IME (remove directory):●

ne može se brisati direktorij u kojem se nalazimo❍

ne može se brisati direktorij koji je pun :❍

Za rekurzivno brisanje punih direktorija koristiti rm -rf IME■

Primjeri :

Kreiraj direktorij sa poddirektorijem u njemu (test/test1)

mkdir -p test/test1

Kreiraj datoteku imena proba.txt unutar test/test1/ direktorija

Page 83: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 83/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

touch test/test1/proba.txt

Obriši (! oprez !) direktorije test/test1/ i sve datoteke u njima

rm -rf test

Kreiranje datoteka

touch IME – kreiraj datoteku imena IMEcat > IME – kreiraj datoteku imena IME (upisati sadržaj , CTRL d za kraj i snimanje)vi IME – kreiraj datoteku imena IME i editiraj istu sa vi editoromecho > IME – kreiraj datoteku imena IME

Primjeri

1. Kreirajmo praznu datoteku imena prazno1.txt

touch prazno1.txt

2. Kreirajmo drugu praznu datoteku prazno2.txt (nakon pozivanja ove metode kreiranja datotekeza kraj stisnuti CTRL d)

cat> prazno2.txt

CTRL d

3. Kreirajmo datoteku imena prazno3.txt , pomoću vi editora (o vi editoru u kasnijim poglavljima)

vi prazno3.txt

4. Kreirajmo praznu datoteku imena prazno4.txt

echo> prazno4.txt

5. Upišimo tekst “TEST” u datoteku prazno1.txt, pomoću naredbe echo

echo "TEST"> prazno1.txt

Naredbe za ispis datoteka

cat IME- ispis datoteke (stdout) ili povezivanje više njih (concatenate)more IME- ispis datoteke na standardni izlaz, ekran po ekranless IME- napredna verzija morehead IME- ispis samo početka datoteke (stdout)tail IME- ispis samo kraja datoteke (stdout)

Primjeri

Page 84: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

1. Ispišimo sadržaj datoteke prazno1.txt (iz prethodnog poglavlja), pomoću naredbe cat

cat prazno1.txt

TEST

2. Ispišimo sadržaj datoteke (/etc/profile) pomoću naredbi more i less (njihova punafunkcionalnost vidljiva je tek kod ispisa dužeg teksta)

more /etc/profile

....

Napomena : Naredba more prikazuje tekst, koji je moguće skrolati (gore/dolje), pretraživati i sl.

U slučaju izlistanja dužeg teksta (na više stranica) Izlazak je tipka Q

less /etc/profile

TEST

Napomena : Naredba less prikazuje tekst, koji je moguće skrolati (gore/dolje), pretraživati i sl.

Izlazak je tipka Q

3. Ispis pomoću naredbe head se koristi kada želimo ispisati samo početak neke datoteke (pr./etc/profile):

head /etc/profile

......

4. Ispis pomoću naredbe tail se koristi kada želimo ispisati samo kraj neke datoteke (isti primjerdatoteke : /etc/profile

tail /etc/profile

........

Rad s datotekama

mv IME1 IME2 (move) – prebacivanje

mv ime-datoteke ime-dir (move)●

mv staro-ime novo-ime (move)●

rm IME Brisanje (remove)

Page 85: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 85/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

cp izvor odredište Kopiranje (copy)

cp izvor1 izvor2 odredište●

cp -r izvor odredište - Rekurzivno kopiranje direktorija●

Primjeri

Izlistajmo prvo direktorije i datoteke:

ls -al

total 16drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 21:57 .drwx------ 6 ucenik ucenik 4096 Jul 21 21:45 ..-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 21:34 prazno1.txt-rw-rw-r-- 1 ucenik ucenik 0 Jul 21 21:33 prazno2.txt-rw-rw-r-- 1 ucenik ucenik 0 Jul 21 21:33 prazno3.txt-rw-rw-r-- 1 ucenik ucenik 0 Jul 21 21:34 prazno4.txt-rw-rw-r-- 1 ucenik ucenik 0 Jul 21 21:27 prazno.txtdrwxrwxr-x 3 ucenik ucenik 4096 Jul 21 21:57 test

1. Prebacimo datoteku prazno1.txt u direktorij test

mv prazno1.txt test

2. Pogledajmo sada saržaj direktorija test , te preimenujmo datoteku prazno1.txt u puno1.txt

ls -al test

total 16drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:00 .drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:00 ..-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 21:34 prazno1.txtdrwxrwxr-x 2 ucenik ucenik 4096 Jul 21 21:57 test1

cd test

mv prazno1.txt puno1.txt

Pogledajmo sada sadržaj direktorija:

ls -al

total 8-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 21:34 puno1.txtdrwxrwxr-x 2 ucenik ucenik 4096 Jul 21 21:57 test1

3.Kopirajmo datoteku puno1.txt u prazno1.txt

cp puno1.txt prazno1.txt

Page 86: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Pogledajmo sadržaj:

ls -al

total 20drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:08 .drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:00 ..-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 22:08 prazno1.txt-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 21:34 puno1.txtdrwxrwxr-x 2 ucenik ucenik 4096 Jul 21 21:57 test1

4. Sada obrišimo datoteku puno1.txt

rm puno1.txt

Pogledajmo ponovno sadržaj direktorija:

ls -al

total 16drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:09 .drwxrwxr-x 3 ucenik ucenik 4096 Jul 21 22:00 ..-rw-rw-r-- 1 ucenik ucenik 5 Jul 21 22:08 prazno1.txtdrwxrwxr-x 2 ucenik ucenik 4096 Jul 21 21:57 test1

Rad sa sadržajem datoteka

U radu sa sadržajem datoteka (uglavnom tekstualnog formata) najčešće koristimo nekoliko osnovnihprograma/naredbi.

grep (pronalazi traženi pojam unutar datoteke)●

cut (pronalazi tražene dijelove teksta unutar datoteke [pr. polje podataka, stupac ili sl.] )●

awk (programski jezik za pronalaženje i obradu uzoraka teksta)●

sed (koristi se ra razne transformacije teksta)●

Osim navedenih, postoji i veći broj pomoćnih programa, od kojih ćemo spomenuti:

wc prebrojavanje riječi u datoteciuniq izbacivanje riječi koje se ponavljajusort sortiranje

grep

grep je nastao u vrijeme nastanka prvih UNIX-a (1973). Koristi se za pretraživanje (regularnih) izrazaunutar tekstualnih podataka.

Postoji nekoliko važnijih varijanti grep-a :

grep (standardni),●

Page 87: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 87/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

egrep (nadogradnja na osnovni, dodaje nove metakaraktere za regularne izraze: +, ?, | , () ), može●

se pozvati i sa grep -E ,fgrep, (grep optimiziran za brzo pretraživanje, ne podržava regularne izraze), može se pozvati i sa●

grep -F,

Primjeri

Iz tabličnog kalkulatora (Open Office Calc ili Microsoft Excell ) smo eksportirali tablicu sa ocjenamastudenata za predmeta “Uvod u Linux” i “Linux Napredno” u CSV formatu. Postoje tri stupca : Ime,Prezime i Ocjena , odvojena sa znakom ; .

Tablice sada izgledaju ovako :

cat uvod-u-linux.csv

Ime;Prezime;OcjenaAna;Anic;4Marina;Horvat;5Luka;Lukic;2Pero;Peric;4Kristijan;Kristic;5Maja;Anic;2

cat linux-napredno.csv

Ime;Prezime;OcjenaAna;Anic;2Marina;Horvat;4Luka;Lukic;2Pero;Peric;4Kristijan;Kristic;3Maja;Anic;2

1.Pomoću naredbe grep, unutar datoteke uvod-u-linux.csv pronađimo cijeli unos (red) odStudenta imena Ana:

grep Ana uvod-u-linux.csv

Ana;Anic;4

1.1 Ispišimo i broj reda u kojem je pronađen student imena Ana (-n = Ispiši broj reda) :

grep -n Ana uvod-u-linux.csv

2:Ana;Anic;4

2. Sada nas zanima i kako izgleda unos u obije tablice (datoteke) , za istu osobu ( Ana ). Sada ćemokoristiti regularni izraz * (bilo koji znak), pošto obije datoteke u imenu imaju riječ linux iextenziju .csv

grep Ana *linux*.csv

Page 88: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

linux-napredno.csv:Ana;Anic;2uvod-u-linux.csv:Ana;Anic;4

3. Probajmo istu pretragu ali da se ignoriraju velika i mala slova - sada ćemo tražiti ime ana (malimslovima).

grep -i ana *linux*.csv

linux-napredno.csv:Ana;Anic;2uvod-u-linux.csv:Ana;Anic;4

4. Pretražimo sve direktorije i poddirektije, rekurzivno ( -r ) , počevši od trenutnog u kojem senalazimo ( . ) i sve datoteke unutar njih koje sadrže rijeć ana :

grep -r -i ana .

./uvod-u-linux.csv:Ana;Anic;4

./linux-napredno.csv:Ana;Anic;2

4.1 Ispišimo samo datoteke u kojima je pronađeno ime Ana ili ana (-l = samo ispis imena datotekakoje zadovoljavaju kriterije pretrage)

grep -r -i ana -l .

./uvod-u-linux.csv

./linux-napredno.csv

5. Ispišimo sve ostale osim studenta ana (invert match = -v) iz datoteke : inux-napredno.csv

grep -v -i ana linux-napredno.csv

Ime;Prezime;OcjenaMarina;Horvat;4Luka;Lukic;2Pero;Peric;4Kristijan;Kristic;3Maja;Anic;2

6. Prebrojimo koliko studenata se preziva Anic , u istoj datoteci (-c = prebrojavanje)

grep -c Anic linux-napredno.csv

2

7.Pronađimo više unosa istovremeno . Nađimo prezimena Anic i Lukic :

7.1. Pomoću naredbe grep (potrebno je odvajati pojmove sa pipe ( | ) ali ga moramo pozivati sa \| ):

grep 'Anic\|Lukic' uvod-u-linux.csv

Page 89: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 89/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Ana;Anic;4Luka;Lukic;2Maja;Anic;2

7.2. Pomoću naredbe egrep (ovdje ne moramo koristiti escape \ karakter za pipe znak | ):

egrep 'Anic|Lukic' uvod-u-linux.csv

Ana;Anic;4Luka;Lukic;2Maja;Anic;2

cut

Naredba cut se koristi za procesiranje teksta odnosno pronalaženje dijelova teksta poput određenogstupca teksta ili sl. Pogledajmo nekoliko primjera:

Primjeri

1. Imamo datoteku u kojoj su sadržani podaci o korisnički računima /etc/passwd u kojoj se nalazeslijedeći podaci :

root:x:0:0:root:/root:/bin/bashdaemon:x:1:1:daemon:/usr/sbin:/bin/shbin:x:2:2:bin:/bin:/bin/shsys:x:3:3:sys:/dev:/bin/shsync:x:4:65534:sync:/bin:/bin/syncgames:x:5:60:games:/usr/games:/bin/sh

Želimo izvući samo drugi stupac - to bi bilo drugo slovo (znak). To ćemo napraviti na slijedeći način:

cut -c2 /etc/passwd

oaiyya

Dakle dobili smo ispisano samo drugo slovo, kako smo i htjeli.

2. Želimo izvući sve što se nalazi u prvom stupcu iste datoteke od gore, što je zapravo lista imenakorisničkih računa. Naime u toj CSV datoteci delimiter (oznaka stupca) je znak :.

cut -d':' -f1 /etc/passwd

root

Page 90: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

daemonbinsyssyncgames

Prekidač -d koristimo da bi rekli naredbi da je delimiter u ovoj CSV datoteci znak : a prekidač -f dabi joj rekli da želimo damo prvi stupac -f1.

3. Želimo izvući sve što se nalazi u prvom (korisničko ime) i sedmom (shell od tog korisnika) stupcuiste datoteke od gore te zamijeniti delimiter sa znakom ; jer nam to treba za novu CSV datoteku ukojoj će delimiter biti ;.

cut -d':' -f1,7 --output-delimiter=';' /etc/passwd

root;/bin/bashdaemon;/bin/shbin;/bin/shsys;/bin/shsync;/bin/syncgames;/bin/sh

Vidimo da smo dobili ispisani prvi i sedmi stupac te delimiter zamijenjen sa znakom ; (kako smo ihtijeli).

awk

awk je nastao 1970 u “Bell Labs” od strane tri autora: Alfred Aho, Peter Weinberger i Brian Kernighan , koji su kombinirali :

egrep (naredba za pretraživanje),●

ed (tekst editor),●

snobol (StriNg Oriented and symBOlic Language) i●

C (programski jezik)●

awk je interpreterski programski jezik, dakle direktno se izvršava bez compile-iranja, a koristi se za :

procesiranje teksta,●

izvlačenje podataka,●

reporting,●

provjeru i manipulacije s tekstom,●

…●

awk naredbe se nižu po principu:

awk condition { action }

tj.

Page 91: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 91/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

awk “uvjet” {“akcija/radnja”}

Print naredba

Opis osnovnih naredbi za ispis :

{ print } Ispiše cijeli sadržaj

{ print $0} Ispiše cijeli sadržaj ($0 = sve)

{ print $1} Ispiše prvi stupac iz cijelog sadržaja

{ print $2} Ispiše drugi stupac iz cijelog sadržaja

{ print $1,$2} Ispiše prvi i drugi stupac iz cijelog sadržaja

Primjer

Kreirali smo datoteku awk.test.txt, sadržaja:

1 PC-1 100 121.23.45.673 PC-3 150 26.34.78.982 PC-1 20 172.156.34.226 PC-2 45 121.23.45.675 PC-1 234 26.34.78.984 PC-2 124 172.156.34.227 PC-2 23 172.156.34.22

Sadržaj predstavlja pojednostavljeni dio log datoteke u koju se snima statistika izlaza na iternet zasvaku IP adresu.

1. Iz datoteke awk.test.txt, želimo prikazati sve (sadržaj cijele datoteke):

awk '{print}' awk.test.txt

1 PC-1 100 121.23.45.673 PC-3 150 26.34.78.982 PC-1 20 172.156.34.226 PC-2 45 121.23.45.675 PC-1 234 26.34.78.984 PC-2 124 172.156.34.227 PC-2 23 172.156.34.22

2. Sada želimo prikazati samo drugi stupac tj. čije računalo (hostname) je išlo na internet

awk '{print $2}' awk.test.txt

PC-1PC-3PC-1

Page 92: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

PC-2PC-1PC-2PC-2

3. Sada želimo prikazati drugi i treći stupac tj. koja/čija računala (hostname) su koliko puta pristupalaodređenim web starnicama:

awk '{print $2,$3}' awk.test.txt

PC-1 100PC-3 150PC-1 20PC-2 45PC-1 234PC-2 124PC-2 23

Varijable

Moguće je koristiti sistemske varijable ili definirati svoje.

Sistemske varijable

Opis češće korištenik sistemskih varijabli:

NR: Keeps a current count of the number of input records.

NF: Keeps a count of the number of fields in an input record. The last field in the input record can bedesignated by $NF.

FILENAME: Contains the name of the current input-file.

FS: Contains the “field separator” character used to divide fields on the input record. The default,“white space”, includes any space and tab characters. FS can be reassigned to another character tochange the field separator.

RS: Stores the current “record separator” character. Since, by default, an input line is the inputrecord, the default record separator character is a “newline”.

OFS: Stores the “output field separator”, which separates the fields when Awk prints them. Thedefault is a “space” character.

ORS: Stores the “output record separator”, which separates the output records when Awk prints them.The default is a “newline” character.

OFMT: Stores the format for numeric output. The default format is “%.6g”.

Primjeri

1. Ispišimo brojeve linija (redova) za našu datoteku awk.test.txt

Page 93: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 93/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

awk '{print NR}' awk.test.txt

1234567

2. Ispišimo ukupan broj redova unutar naše datoteke awk.test.txt

awk 'END {print NR}' awk.test.txt

7

Dakle imamo ukupno 7 redova (linija)

3. Ispišimo broj stupaca za svaku liniju (red) unutar naše datoteke awk.test.txt

awk '{print NF}' awk.test.txt

4444444

Vdiljivo je da za svaki red imamo 4 stupca

4. Ispišimo zadnji stupac (bez obzira koliko ih ima) unutar naše datoteke awk.test.txt

awk '{print $NF}' awk.test.txt

121.23.45.6726.34.78.98172.156.34.22121.23.45.6726.34.78.98172.156.34.22172.156.34.22

Varijable koje možemo sami definirati

Kao što smo i rekli ranije, moguće je definirati i svoje varijable. Pogledajmo primjere osnovnogkreiranja i korištenja svojih varijabli.

Primjer

Page 94: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Kreirajmo datoteku varijable.awk

U navedenoj datoteci ćemo kreirati varijablu BROJ i dodjeliti joj vrijednost 10

BEGIN { BROJ = 10 print "vrijednost BROJ=" BROJ}

awk program koji smo napravili, sada ćemo i pokrenuti (nakon prekidaća -f , slijedi ime awkdatoteke) :

awk -f varijable.awk

vrijednost BROJ=10

Dakle vidimo da smo ispisali vrijednost varijable BROJ, uz tekst koji smo joj pridružili (vrijednostBROJ=)

Funkcije i for petlje

Programski jezik awk nam omogućava i kreiranje (i pozivanje) funkcija.

Primjer

Kreirati ćemo funkciju imena BROJAC , koju ćemo poslije pozvati.

Kreirajmo novu datoteku funkcije.awk , sa slijedećim sadržajem:

function BROJAC() { for (i = 0; i <10; i++) print "BROJAC=" i }

Dakle kreirana je funkcija BROJAC koja ima slijedeću funkcionalnost :

for (i = 0; i < 10; i++) ⇒ kreiramo FOR petlju u kojoj varijabla i ima vrijednost 0 te sepovećava (increment) za 1 (i++) u svakom prolazu , sve dok ne dosegne vrijednost do 10 .

print “BROJAC=” i ⇒ ispisujemo tekst (BROJAC=) i vrijednost varijable i (koja semijenja/povećava)

Naime ovo će biti mali brojać od 0 do 9.

Sada nam je potrebno od negdje i pozvati našu funkciju BROJAC , to ćemo postići tako da ćemo nakraj dodati slijedeći kod:

BEGIN {

Page 95: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 95/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

BROJAC()}

Dakle cijela datoteka sada izgleda ovako:

function BROJAC() { for (i = 0; i <10; i++) print "BROJAC=" i }

BEGIN { BROJAC()}

Sada ju snimimo i pozovimo:

awk -f funkcije.awk

BROJAC=0BROJAC=1BROJAC=2BROJAC=3BROJAC=4BROJAC=5BROJAC=6BROJAC=7BROJAC=8BROJAC=9

Uvjeti

Kao i svaki drugi programski jezik awk ima i uvjete, popis uvjeta koji su podržani je :

if-else●

while●

do-while●

for●

switch●

break●

continue●

next●

nextfile●

exit●

Mi ćemo obratiti osnovi uvjet if-else, koji imaju slijedeću logiku:

if (condition) then-body [else else-body]

Primjer

Page 96: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Proširiti ćemo prethodni primjer pozivanja funkcija, sa dva uvjeta , kod ispisivanja brojeva :

Dali su brojevi koji se kreiraju veći ili jednaki 5 ili manji ili jednaki 5●

Kopirajmo datoteku funkcije.awk u if-else.awk

Dodati ćemo slijedeći kod/redove

function BROJAC() { for (i = 0; i <10; i++) if (i <= 5) print "i je manji ili jednak 5 : " i else print "i je veci od 5 : " i}

BEGIN { BROJAC()}

Objasnimo if else dio :

Pošto se nalazimo u for petlji koja “vrti” brojeve od 0 do 9 dodali smo :

if (i <= 5) print "i je manji ili jednak 5 : " i

Što znači da sve dok je i manje ili jednako 5 , ispisujemo (print) i je manji ili jednak 5 : ivrijednost varijable i

else print "i je veci od 5 : " i

I else uvjet koji kaže , a inaće ispišimo (print) i je veći ili jednak 5 : i vrijednostvarijable i

Pokrenimo primjer:

awk -f if-else.awk

i je manji ili jednak 5 : 0i je manji ili jednak 5 : 1i je manji ili jednak 5 : 2i je manji ili jednak 5 : 3i je manji ili jednak 5 : 4i je manji ili jednak 5 : 5i je veci od 5 : 6i je veci od 5 : 7i je veci od 5 : 8i je veci od 5 : 9

Page 97: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 97/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Polja (Array)

Polje (Array) (polje) predstavlja tablicu vrijednosti koje zovemo elementima. Elemente poljarazlikujemo po indeksima. Dakle polja možemo promatrati kao varijable koje sadrže više elemenataImena polja imaju istu sintaksu kao i imena varijabli ali ne smijemo koristiti isto ime i za polje (array) iza varijablu. u awk-u se Array (polja), definicija broja elemenata ili komponenti ne moradefinirati prije korištenja (za razliku od većine programskih jezika).

Primjeri

1. Kreirajmo datoteku imena array.awk , koja sadrži slijedeći kod:

{ IP[$4]++;}

END { for (var in IP){ print var, "Pristupano", IP[var]," puta" }}

Koristiti ćemo datoteku koja je pojednostavljena log datoteka izlaza na internet, koja u 4 stupci imapopis IP aresa kojima se pristupalo.

Datoteka awk.test.txt izgleda ovako:

1 PC-1 100 121.23.45.673 PC-3 150 26.34.78.982 PC-1 20 172.156.34.226 PC-2 45 121.23.45.675 PC-1 234 26.34.78.984 PC-2 124 172.156.34.227 PC-2 23 172.156.34.22

Mi s gore navedenim naredbama (kodom) želimo kreirati Array (polje) imena IP koja će sadržavatisve IP adrese iz 4-tog stupca naše datoteke :awk.test.txt , to smo postigli sa :

{ IP[$4]++;}

Kod gore - ovdje kreiramo polje imena IP , u koje ubacujemo vrijednosti iz 4-tog stupca (IP arese) teih svaki puta uvećamo (increment: ++) tj povećavamo polje, sa svakim novim elementom.

for (var in IP){

Ovdje za elemente (var) polja IP koje smo popunili u primjeru gore ,

print var, "Pristupano", IP[var]," puta"

Page 98: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ispisujemo svaku pojedinu IP adresu iz polja (print var) uz pripadajući tekst te ispisujemo koliko jebilo ponavljanja iste IP adrese IP[var]

Pokrenimo naš novi program imena array.awk , na log datoteci imena : awk.test.txt :

awk -f array.awk awk.test.txt

26.34.78.98 Pristupano 2 puta121.23.45.67 Pristupano 2 puta172.156.34.22 Pristupano 3 puta

2. Istu stvar mogli smo pokrenuti i iz jednolinijskog awk koda, sa istim rezultatom:

awk '{IP[$4]++;} END{for (var in IP) print var, "Pristupano", IP[var],"puta"}' awk.test.txt

26.34.78.98 Pristupano 2 puta121.23.45.67 Pristupano 2 puta172.156.34.22 Pristupano 3 puta

3. Napraviti ćemo istu stvar i pomoću niza linux naredbi:

cat awk.test.txt | awk '{print $4}' | sort | uniq -c | sort -nr

3 172.156.34.22 2 26.34.78.98 2 121.23.45.67

Opis:

1.Ispisujemo datoteku awk.test.txt sa naredbom cat

2.Potom sa nredbom awk ispisujemo samo 4 stupac

3.Sortiramo IP adrese naredbom sort

4. Prebrojavamo broj istih IP adresa naredbom uniq -c

5. Ponovno pozivamo naredbu sort -nr ali sada da bi poredali sve po prvom stupcu (broju konekcijakoje smo prebrojavali u koraku 4.).

Pretraživanje

Pomoću jezika awk, moguće je i pretraživati tekst prema nekoj ključnoj rijeći.

Sintaksa je :

awk '/XY/ {print … … … }' FILE : Traži pojam XY

Page 99: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 99/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Primjer

Iz datoteke ocjena studenata : uvod-u-linux.csv , pronađimo sve studente koji se prezivaju Anic.

Pošto je ovo CSV datoteka u kojoj je delimiter ; pa ga moramo definirati sa -F , ali uz korištenjeescape karaktera \ dakle sa -F\;

awk -F\; '/Anic/' uvod-u-linux.csv

Ana;Anic;4Maja;Anic;2

2. Isti primjer možemo proširiti i sa drugim mogućnostima awk-a, pr. filtrirajmo samo 3 stupac izprimjera gore:

awk -F\; '/Anic/ {print $3}' uvod-u-linux.csv

42

Aritmetičke operacije i operatori

awk nam omogućava upotrebu aritmetičkih operacija i operatora:

Operatori :

> Veće od●

>= Veće ili jednako od●

< Manje od●

⇐ Manje ili jednako od●

== Jednako sa●

!= Različito od●

&& Oba izraza moraju biti istinit●

|| Bilo koji od izraza mora biti istinit●

Aritmetičke operacije:

+ Zbrajanje●

- Oduzimanje

/ Dijeljenje●

* Množenje●

^ Potenciranje●

% Modulo (pr. 16%6=4 ,16/6=2 , 2*6=12 , 16-12=4)●

Popis unarnih operacija

+ “Pozitiviranje” broja●

- Negiranje broja●

++ Auto increment●

Page 100: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

– Auto decrement●

Primjeri

1. Iz naše datoteke sa ocjenama , želimo zbrojiti sve ocjene i podjeliti ih s brojem studenata da bidobili prosjek ocjena.

Pošto je prvi red naše CSV datoteke uvod-u-linux.csv opis, moramo ga maknuti, to ćemonapraviti pomoću naredbe tail -n +2 (ispiši sve redove počevši od drugog reda, pa sve do krajadatoteke).

Sada možemo zbrojiti sve zadnje stupce tj. treči stupac (x = x +$3) te rezultat podijeliti sa brojemsvih redova (osim prvog kojeg smo maknuli) : print x/NR

tail -n +2 uvod-u-linux.csv | awk -F\; '{ x = x + $3} END { print x/NR }'

3.66667

2. Iz naše datoteke sa logovima (awk.test.txt) pristupa internetu, pomnožimo u svakom redu prvistupac sa 2:

awk '{print $1*2}' awk.test.txt

2641210814

Za više detalja o programskom jeziku awk, možete pogledati knjigu :

https://www.gnu.org/software/gawk/manual/gawk.pdf

sed

sed (Stream Editor),koristi se za parsiranje i transformiranje teksta (podataka).● sed podržava regularne izraze

Najčešće koršteni regularni izrazi u sed-u:

* niti jedan ili bilo koliko karaktera●

\+ kao * ali za jedan ili više karaktera●

\? niti jedan ili jedan karakter●

\{i\} kao * ali za točno i broj karaktera●

\{i,j\} između i i j broja karaktera , uključujuči oba●

\{i,\} višeo ili jednako i karaktera●

. bilo koji karakter uključujuči novu liniju●

^ “null string” - pr. space - na početku linije●

Page 101: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 101/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

$ “null string” - pr. space - na kraju linije●

Primjeri.

Kreirati ćemo datoteku iena : ulaz.txt koja će sadržavati:

POCETAK12STARO34NOVO5KRAJ

Zamjena stringova

Iz datoteke ulaz.txt svugdje gdje se pojavljuje pojam STARO, zamijeniti ćemo sa NOVO i tu snimiti unovu datoteku izlaz.txt:

sed 's/STARO/NOVO/g' ulaz.txt> izlaz.txt

Pogledajmo rezultat:

cat izlaz.txt

POCETAK12NOVO34NOVO5KRAJ

Sada ćemo napraviti dvije zamjene odjednom:

sed 's/STARO/NOVO/g ; s/POCETAK/KRAJ/g' ulaz.txt> izlaz.txt

Što smo dobili :

cat izlaz.txt

KRAJ12NOVO

Page 102: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

34NOVO5KRAJ

Brisanje stringova

Obrišimo pojam STARO:

sed 's/STARO//' ulaz.txt> izlaz.txt

Pogledajmo rezultat:

cat izlaz.txt

POCETAK12

34NOVO5KRAJ

Napomena:

Direktne promjene na datoteci mogu se raditi ako koristimo prekidač -i :

sed -i 's/STARO//' ulaz.txt

Unutar datoteke ulaz.txt obrišimo (d) prazne (^$) redove

sed -i '/^$/d' ulaz.txt

Na ispisu datoteke ulaz.txt obrišimo sve od 1 do 4 reda (uključujuči 4.)

cat ulaz.txt | sed '1,4d'

… ovo smo mogli napraviti i ovako (-e znači da slijedi sed naredba):

sed -e '1,4d' ulaz.txt

34NOVO5

Page 103: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 103/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

KRAJ

Iz datoteke ulaz.txt obrišimo sve redove između određena dva reda koja sadrže riječi POČETAK iNOVO

sed -e '/POCETAK/,/NOVO/d' ulaz.txt

5KRAJ

Traženje datoteka

S vremena na vrijeme porebno nam je pronaći neku datoteku (ili naredbu), prema određenomkriteriju, u tu svrhu se koriste:

whereis

Koristi se kada želimo pronaći gdje se u strukturi direktorija koji su nam u putanji (PATH), te u putanjiza man stranice, nalazi određena naredba ili datoteka

Prvo pogledajmo koji direktoriji su nam u putanji (PATH), za trenutno logiranog korisnika:

echo $PATH

/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/ucenik/bin

Dakle u svim i iz svih navedenih direktorija (odvojenih dvotočkom : ) možemo pokretati naredbe i unjima će i naredba whereis pretraživati.

Primjer

1. Pronađimo gdje se nalazi naredba ls i pripadajući manual (upute) za nju:

whereis ls

ls: /bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz

which

Koristi se kada želimo pronaći gdje se točno u putanji direktorija nalazi određena izvršna naredba (i našto pokazuje njen alias ako postoji).

Primjeri

1. Gdje se nalazi naredba more tj. odakle ju zapravo pozivamo:

Page 104: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

which more

/bin/more

2. Gdje se nalazi naredba less tj. odakle ju zapravo pozivamo

which less

/usr/bin/less

3. Gdje se nalazi naredba ls tj. odakle ju zapravo pozivamo :

which ls

alias ls='ls --color=auto' /bin/ls

Što ovo znači ?.

Da se naredba ls nalazi u /bin/ direktoriju●

Da naredba ls ima alias koji presreće izvornu naredbu ls tj. poziva ju s određenim prekidaćem ,●

tj. ovako : ls –color=auto

locate i updatedb

Naredba locate koristi se za brzo traženje datoteka. Njena brzina je u tome da se pomoću naredbeupdatedb skeniraju datoteke na cijelom tvrdom disku (hard disk) te se njihov naziv i putanja (lokacijaunutar direktorija) spremaju u posebnu bazu podataka: tkzv “mlocate” baza , koja se obično nalazi u :/var/lib/mlocate/ mlocate.db .

Definicija koji tipovi datoteka (uz ostale parametre) će se pretražiti pokretanjem update-a ove baze tj.pokretanjem naredbe updatedb je definirana u datoteci : /etc/updatedb.conf. Naime nakonpokretanja updatedb skenira se cijeli disk i obnavlja mlocate baza podataka koju zapravo naredbalocate pretražuje kod potrage za datotekama.

Često se na raznim Linux sustavima updatedb pokreće automatski svaki dan (noć) ili svakih nekolikodana, tako da mlocate baza bude što točnija.

Primjeri.

1. Kreiraj novu mlocate bazu i skeniraj cijeli tvrdi disk (ovo može potrajati prilično dugo)

updatedb

2. Pronađi datoteku imena koje počinje sa sysctl.conf

locate sysctl.conf

/etc/sysctl.conf

Page 105: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 105/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

/usr/share/man/man5/sysctl.conf.5.gz

3.Pronađimo gdje se sve nalazi datoteka imena rc.local

locate rc.local

/etc/rc.local/etc/rc.d/rc.local

4.Pronađimo koje sve datoteke imaju ime koje počinje sa apache

locate apache

/etc/selinux/targeted/modules/active/modules/apache.pp/usr/lib/python2.6/site-packages/sos/plugins/apache.py/usr/lib/python2.6/site-packages/sos/plugins/apache.pyc/usr/lib/python2.6/site-packages/sos/plugins/apache.pyo/usr/share/selinux/devel/include/services/apache.if/usr/share/selinux/targeted/apache.pp.bz2/usr/share/vim/vim72/syntax/apache.vim/usr/share/vim/vim72/syntax/apachestyle.vim

...

Osim navedenih primjera postoje i neki prekidaći naredbe locate, za dodatne osnovne opcijepretraživanja. Za sva složenija pretraživanja koristi se slijedeća naredba.

find

Koristi se za nalaženje datoteka prema raznovrsnim parametrima pretraživanja, kojih naredba findima na stotine.

Osnovna sintaksa je :

find /početni-direktorij-za-pretraživajne -opcije što-tražimo

Osnovni prekidači su :

-name ime datoteke

-iname ime datoteke ali se ignoriraju velika i mala slova

-type :

-type f označava datoteku

-type d označava direktorij

-type l označava simbolički link

-perm označava da slijede ovlasti (permisions)

Page 106: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

-exec označava da slijedi pozivanje naredbi iz operativnog sustava

-mtime slijedi oznaka vremena kada je (datoteka ili direktorij) modificiran

-atime slijedi oznaka vremena kada je (datoteci ili direktoriju) pristupano (read ili copy)

-size slijedi veličina datoteke

Primjeri

1. Pronađimo datoteku imena rc.local , za koju znamo da se nalazi negdje u /etc/ direktoriju, panećemo pretraživati cijeli tvrdi disk , počevši od / direktorija:

find /etc/ -name rc.local

/etc/rc.d/rc.local/etc/rc.local

2. Već se nalazimo u /etc/ diretoriju, krenimo s istom pretragom iz prethodog primjera ali označivšida krećemo iz trenutnog direktorija ( . )

find . -name rc.local

./rc.d/rc.local

./rc.local

3. Pronađimo istu datoteku iz prethodnog primjera ali s time da se ignoriraju velika i mala slova (jernismo sigurni koje je veliko a koje malo slovo u nazivu datoteke)

find . -iname rc.local

./rc.d/rc.local

./rc.local

4.Pronađimo direktorij imena ssh , ali želimo pretražiti cijeli disk jer ne znamo gdje se nalazi

find / -type d -name ssh

/etc/ssh

5. Pronađimo datoteku unutar /etc/ direktorija (i svih poddirektorija), koja ima ekstenziju .sample

find /etc/ -type f -name "*.sample"

/etc/gdm/PostLogin/Default.sample

6. Pretražimo sve korisničke home direktoije u potrazi za datotekama koje imaju ovlasti 777 (ReadWrite eXecute za sve):

find /home/ -type f -perm 0777 -print

Page 107: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 107/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

7. Pronađimo sve MP3 datoteke u korisničkim home direktorijima i obrišimo ih !!

find /home/ -type f -name "*.mp3" -exec rm -f {} \;

Opis: ovdje pozivamo prekidač -exec , kojim pozivamo vanjsku naredbu od operativnog sustava : rm-f sa dodatnim parametrima

8. Pronađimo sve prazne datoteke u home direktoriju svih korisnika:

find /home/ -type f -empty

8.1. Pronađimo sve prazne direktorije, također u home direktoriju svih korisnika

find /home/ -type d -empty

9. Pronađimo sve datoteke koje su promijenjene (modify) u zadnjih 10 dana u home direktoriju svihkorisnika

find /home/ -mtime 10

10.Pronađimo sve datoteke kojima je pristupano (access) u zadnjih 10 dana u home direktoriju svihkorisnika.

Pristupano znači da su čitane (read) ili kopirane.

find /home/ -atime 10

11. Pronađimo sve datoteke u home direktoriju svih korisnka, koje su veće od 100 MB

find /home/ -size 100M

12. Pronađimo sve datoteke u home direktoriju svih korisnka, koje su veće od 50MB ali manje od100MB

find /home/ -size +50M -size -100M

xargs

Naredba xargs nije vezana za pretraživanje ali se često koristi u kombinaciji sa naredbom find (ilidrugim naredbama).

NAPREDNO

Zbog čega i kada koristiti xargs ?

Naime Linux kao i svaki drugi operativni sustav ima određena ograničenja prema broju file deskriptoraali i na veličinu memorije koja je u slučaju Linuxa rezervirana za broj (količinu) argumenata koje svakanaredba može pohraniti u memoriji. Standardno Linux koristi 1/4 memorije od broja sistemskidefiniranog maksimalnog broja file deskriptora.

Page 108: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Dakle:

“maximum amount of space for command arguments” = [ ulimit -s ] / 4

Možete pogledati i u poglavlje ulimit za detalje.

Naredba xargs radi tako da uzima sve iz standarnog ulaza (standard input [ stdin ]) te lomidugačke ulazne podatke na više manjih/kraćih, koje u praksi proslijeđujemo nekoj drugoj naredbi. Nataj način se riješava problem ograničenja navedenih u tekstu gore, bez potrebe za promijenama nanivou Linux file descriptora.

Dakle ovo se dešava samo u slučajevima kada nam na ulaz (ili izlaz naredbe prije) dolazi velikakoličina podataka u nizu te kada obično dobijemo sistemski pogrešku :

Argument list too long

Ovaj problem u praksi se dešava samo kod slučajeva kada se barata sa vrlo velikom količinomargumenata.

Primjeri

Na primjeru iz naredbe find, gdje sve proađene .mp3 datoteke iz /home/ direktorija šaljemo u listu {}te pozivamo vanjsku naredbu u koju se puni ta lista, u slučaju da je pronađeni broj takvih datotekaizuzetno velik, te ne stane u listu koju proslijeđujemo naredbi rm -f , mogli bi dobiti grešku :

Argument list too long

Ovo je bio primjer :

Pronađimo sve MP3 datoteke u korisničkim home direktorijima i obrišimo ih !!

find /home/ -type f -name "*.mp3" -exec rm -f {} \;

1. U našem primjeru prilagoditi ćemo se upotrebom naredbe xargs , kojom ćemo pokrenuti naredurm -f sa listom {} imena .mp3 datoteka koju nam je popunio find :

find /home/ -type f -name "*.mp3" -print | xargs rm -f {} \;

istu stvar možemo napraviti i bez liste, već slanjem imena datoteka od find-a kroz xargs premanaredbi rm -f :

find /home/ -type f -name "*.mp3" -print | xargs rm -f

Pogledajmo i što nam sve find pronalazi i što xargs proslijeđuje (šaljemo sve pronađeo na ispis naekran [echo]):

find /home/ -type f -name "*.mp3" -print | xargs echo

/home/ucenik/1.mp3 /home/ucenik/3.mp3 /home/ucenik/2.mp3

1.1 U slučaju da smo imali neku datoteku koja ima razmak (space) u imenu, find ih ne bi pronašao nitibi ih xargs proslijedio na brisanje. Riješimo ovaj problem u find-u (dodajemo -print0 što znaći da

Page 109: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 109/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

se ispisuju i one datoteke koje imaju razmak u imenu) te isto recimo i xargs-u (-0):

Pogledajmo listu .mp3 datoteka:

ls -al *.mp3

-rw-r--r-- 1 root root 0 Jul 24 18:42 0.mp3-rw-r--r-- 1 root root 0 Jul 24 18:42 1.mp3-rw-r--r-- 1 root root 0 Jul 24 18:42 2.mp3-rw-r--r-- 1 root root 0 Jul 24 18:42 3 0.mp3-rw-r--r-- 1 root root 0 Jul 24 18:29 3.mp3

Vidimo da postoji jedna datoteka koja se zove 3 0.mp3 - dakle ima razmak u imenu.

find /home/ -type f -name "*.mp3" -print0 | xargs -0 rm -f

2. Ispišimo niz brojeva , potom ih podjelimo, pomoću xargs, tako da ih bude maksimalno 2 u jednomredu:

echo 1 2 3 4 5 6 7 8 | xargs

1 2 3 4 5 6 7 8

sada iskoristimo mogućnost ograničavanja maksimalnog broja elemenata u svakom redu (prekidač-n), ograničimo ispis na 2 elementa:

echo 1 2 3 4 5 6 7 8 | xargs -n2

1 23 45 67 8

Izvršavanje naredbi u zadano vrijeme

U svakom UNIX/Linux sustavu moguće je sutomatizirati pokretanje naredbi ili skripti u određenovrijeme.

Nekada je potrebno pokretati određene naredb ili skripte periodički, a nekada postoji potreba samojednom (jednokratno) pokrenuti nešto.

Oba scenarija su pokrivena sa dvije naredbe tj. servisa/daemona:

crontab - za periodičko repetitivno pokretanje : pr. želimo pokretati nek skripte svaki dan u ponoć●

(antivirus scan, disk check , ntp dohvaćanje točnog vremena i sl.)at - za jednokratno pokretanje: pr. želimo samo danas u 20:00.h. pokrenuti neku skriptu koja će●

nam pokrenuti neki posao čije izvršavanje će trajati cijelu noć i sl.

Page 110: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Crontab

Crontab se koristi za automatsko pokretanje programa u točno određeno vrijeme

Svaki korisnik može imati svoje crontab unose●

Format crontab unosa je opisan na slici:

Dakle svaki red u crontab-u je novi unos, koji mora biti strukturiran kako je opisano na slici.

Na slici je konkretan primjer pokretanja naredbe ntpdate , koja se spaja na ntp server (10.10.11.12) ipovlači točno vrijeme , svaki dan u ponoć (00:00).

Opcije naredbe crontab su:

e - editiraj crontab datotekul - (malo slovo L) ispiši sadržaj datoteker - briše korisnikovu crontab datoteku

Primjer

Kreiraj novi crontab unos (da se pokreće svaki dan u 00:00.h.), koji će pokretati naredbu koja ćeispisati zauzeće diskovnih particija: df -h

crontab -e

0 0 * * * df -h

Page 111: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 111/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

at naredba

Koristi se za automatsko jednokratno pokretanje programa ili skripti u točno određeno vrijeme.Ako izlaz naredbe at nije preusmjeren u datoteku generirati će se e-mail koji sadrži stdout(standardnu poruku programa) i stderr (standardnu poruku o grešci - ako je ima).

Primjeri

Kreirajmo datoteku at.datoteka u 10:18.h. (CTRL d je izlaz)

at 10:18touch at.datoteka

CTRL d

Neka at pokrene samo skriptu (-f) at.skripta.sh u 10:19.h. i još pošalje e-mail (-m)

at 10:19 -m -f at.skripta.sh

Osim navođenja točnog vremena, moguće je navoditi i relativno vrijeme, pr. da se određeni atzadatak pokreće za nekoliko, minuta , sati ili dana od sada. Primjer (2 minute od sada, 2 sata od sadaili 2 dana od sada):

at now + 2 min

...

at now + 2 hour

...

at now + 2 day

Provjerimo koje sve at zadatke imamo aktivne:

atq

3 Tue Jan 7 10:519:00 2014 a root

U prvom stupcu je vidljiv broj posla [job number] (3 u našem primjeru) , potom datum kada se trebaizvršiti i pod kojim korisničkim imenom (root u našem slučaju).

Ako zbog nekog slučaja želimo maknuti tj. obrisati određeni at zadatak (job) za to se koristi naredbaatrm nakon kojeg je potrebno navesti job number (u primjeru ćemo obrisati naš prethodni at posaobr. 3):

atrm 3

Page 112: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Administracija Linux sustava

Za administraciju Linux sustava, potrebno je biti root korisnik (administrator) :

root korisnik ima User ID 0 (UID)●

Drugi korisnici mogu dobiti root ovlasti (ako znaju root lozinku), upotrebom naredbe su (SubstituteUser)

Rad s korisničkima računima, grupama i lozinkama

Pošto je Unix/Linux svijet višekorisnički, posebnu pažnju treba posvetiti korisničkim računima tekorisničkim grupama na samom sustavu.

Dakle u svakom trenutku, moguće je da više korisnika koristi sustav u isto vrijeme. U primjerima okoovlasti (permissions) vidljiva je veza između korisničkih računa i korisničkih grupa. U ovom poglavljukrenuti ćemo s administracijske strane.

Svaki korisnik uz samo korisničko ime na nivou sustav identificira se jedinstvenim korisničkim brojemUID (User ID), isto vrijedi i za svaku korisničku grupu , koja ima jedinstveni grupni identifikacijski brojodnosno GID (Group ID).

U UNIX/Linux svijestu root korisnik ID:0 je ekvivalent Administratoru, on također pripada grupi root, koja isto ima GID:0.

Primjer

Postani root korisnik i preuzmi njegovo okruženje (environment) [ - prekidač ]

su - root

Svaki korisnički račun (account) je upisan u /etc/passwd , njegova kriptirana lozinka je zapisana u /etc/shadow a sve grupe korisnika koje postoje na sustavu, zajedno s pripadnostima korisnik/grupase nalaze u /etc/groupŠto se nalazi u kojoj od navedenih sistemskih datoteka (malo detaljnije):

/etc/passwd - sadrži ime accounta, osobne podatke (ime, prezime, …) i shell koji će biti pokrenut●

kod logiranja,…/etc/shadow - sadrži kriptirane lozinke za svaki korisnički račun (account)●

/etc/group - ovdje su definirane sve korisničke grupe i pripadnosti grupama●

/etc/passwd

/etc/passwd datoteka sadrži bitne informacije, koje su potrebne za logiranje svakog korisnika nasustav.Kod logiranja na sustav, prvo se provjerava da li određeni korisnik postoji (prvi stupac u datoteci jeupravo username [ime korisničkog accounta]). Drugi stupac (x) označava da se kriptirani passwordnalazi u datoteci /etc/shadow , koja će biti kasnije objašnjena. Osim toga važno je znati da svakikorisnik može pripadati samo jednoj primarnoj grupi (pogledajte GID [Group ID] stupac na slici dolje) i

Page 113: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 113/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

u višesekundarnih grupa korisnika koje su opisane u poglavlju o /etc/group datoteci.

Izgled /etc/passwd datoteke je opisan na slici:

/etc/shadow

/etc/shadow datoteka sadrži kriptiranu lozinku za svaki korisnički račun (account).Nakon prvog koraka (objašnjenog u poglavlju prije), kod logiranja korisnika na sustav i provjere da likorisnik postoji, ako postoji, sustav će vas zatražiti da upišete lozinku. Lozinka se tada kriptira iuspoređuje se s već kriptiranom u datoteci /etc/shadow , za točno određenog korisnika. Ako sepoklapaju omogućen je pristup sustavu.

Izgled /etc/shadow datoteke je opisan na slici:

Page 114: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Napredno

Pogledajmo samo dio kriptirane lozinke “Kriptirani password” dio sa slike, ali uvećan:

Što je opće “password hash” ?To je matematička metoda/algoritam pomoću koje se na osnovi niza ulaznih znakova (pr. našpassword) stvara (kreira) jedinstveni nîz znakova fiksne duljine. Ovo je jednosmjeran put – nijemoguće na onovi hash nîza dobiti izvorni password. Dakle “password hash” se praktično pohranjuje u/etc/shadow

Hash/Checksum

Page 115: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 115/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Vjerojatno ste nekada kopirali ISO image (CD ili DVD) te ste uz njega primjetili pr. MD5 sum od tog ISOimage-a, koji se napravljen stoga da nakon što se skinuli (download) taj ISO file, možete i na svomračunalu napraviti MD5 sum i usporediti vrijednost koju ste dobili sami sa onom koji se nalazi nastranici s koje ste kopirali ISO image.

Primjer je lista MD5 checksum-a za CentOS Linux:

83221db52687c7b857e65bfe60787838 CentOS-6.5-x86_64-bin-DVD1.iso91018b86ca338360bc1212f06ea1719f CentOS-6.5-x86_64-bin-DVD2.iso8c37390fa5d932d03feb05fba13fe92e CentOS-6.5-x86_64-LiveCD.iso7b571e13ce6c3f61dc176bd34f8d60bb CentOS-6.5-x86_64-LiveDVD.iso0d9dc37b5dd4befa1c440d2174e88a87 CentOS-6.5-x86_64-minimal.iso939fd1d87c11ffe7795324438b85adfb CentOS-6.5-x86_64-netinstall.iso

Kako MD5 checksum [hash]) napraviti na Linux-u, na datoteci : CentOS-6.5-x86_64-bin-DVD1.iso(CentOS instalacijski DVD image) :

md5sum CentOS-6.5-x86_64-bin-DVD1.iso

83221db52687c7b857e65bfe60787838 CentOS-6.5-x86_64-bin-DVD1.iso

Dakle ovdje vidimo da smo dobili identičan MD5 checksum što znaći da se DVD ISO datoteka ispravnokopirala s interneta.

Osim MD5, postoje i drugi hash algoritmi:

Brojčana oznaka u Linuxu Hashing algoritam1 MD52 Blowfish5 SHA-2566 SHA-512

Vratimo se na sliku “Kako izgleda kriptirani password”.

U Linux-u, lozinka (password) se kreira kombiniranjem “salt-a” i željenog “password-a”, pomoćuodabranog algoritma.

Primjer

1. Kako provjeriti koji hash-ing algoritam naš Linux sustav koristi, iz komandne linije:

authconfig --test | grep hash

Rezultat našeg upita je :

password hashing algorithm is sha512

U našem slučaju koristi se hashing algoritam 6 : tj SHA-512 , pa ćemo u primjeru koji slijedi, koristitiisti algoritam.

Page 116: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

2. Kako ručno kreirati password, korištenjem salt-a i željenog algoritma ?.Koristiti ćemo programski jezik python , iz komandne linije:

python -c 'import crypt; printcrypt.crypt("ovo_je_password","$6$ovo_je_salt")'

python skripta nam je kreirala slijedeću kriptiranu lozinku:

$6$ovo_je_salt$fPiMsDoTHyyQ9R6qx3cIICWKOCqD8dfBzMTrF8rnRMHsETgsU.

Rezultat/ispis je funkcionalan dio passworda, koji smo na dvije slike prije označili kao dio pod nazivom“Kriptirani password”. Ovakav niz karaktera/znakova je potpuno funkcionalan za upotrebu u/etc/shadow datoteci, na pravom mjestu - opisanom i vidljivom na istoj slici,

/etc/group

/etc/group datoteka sadrži korisničke grupe i pripadnosti korisnika tim grupama.Primjerice grupa bin ima svoj identifikacijski broj 1 i njoj pripadaju korisnici bin i daemon

Izgled /etc/group datoteke je opisan na slici:

Osnovne naredbe za rad s korisničkim računima i grupama

Page 117: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 117/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Lista osnovnih naredbi za rad s korisničkim računima i korisničkim grupama:

id ispiši tko je trenutni logirani korisnik, koji je njegov User ID (UID) i Group ID (GID) i kojim grupamapripada

groups ispiši kojim korisničkim grupama pripada trenutni korisnik

groupadd dodaj/kreiraj novu korisničku grupu

groupdel obriši korisničku grupu

groupmod modifikacije nad korisničkim grupama

useradd dodavanje novog korisnika

userdel brisanje postojećeg korisnika

usermod modifikacije nad korisničkim računom

Primjeri

1. Ispiši tko je trenutni korisnik [naredba id].

id

uid=0(root) gid=0(root) groups=0(root)

Opis :

uid 0 , znači da je korisnički ID jednak 0 ( 0 je root korisnik [Administrator po Windowsterminologiji]), te da je primarna grupa ovog korisnika (ime grupe je root ) , te da još pripada usekundane grupe ( root ).

2. Ispiši kojim sve grupama pripada trenutni korisnik root (naredba groups)

groups

root

3. Kreiraj nove grupe korisnici , korisnici2 i novi za koje želimo da imaju GID (Group ID) [-g] ,br : 1001 i 1002 te 1003 (naredba groupadd)

groupadd -g 1001 korisnici

groupadd -g 1002 korisnici2

groupadd -g 1003 novi

4. Želimo promijeniti GID (Group ID) grupe br.: 1003 (grupa: novi) u 2003 . Ovo se radi naredbomgroupmod

groupmod -g 2003 novi

Page 118: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

5. Odlučili smo grupu novi preimenovati u novikorisnici

groupmod -n novikorisnici novi

6. Ipak želimo obrisati grupu novikorisnici jer nam više ne treba

groupdel novikorisnici

7.Kreiraj korisnika pero , koji će dobiti UID (User ID) 100 ,pripadati će primarnoj grupi koja ima GID(Group ID) 1001 , home direktorij će mu biti /home/pero te će mu startni shell biti bash

U ovom primjeru home direktorij će biti automatski kreiran od strane operativnog sustava.

useradd pero -u 100 -g 1001 -d /home/pero -s /bin/bash

8.Dodajmo istog korisnika ( pero ) i u dodatnu grupu (-a) korisnici2 ali ne mijenjati primarnugrupu] (- G) :

usermod -a -G korisnici2 pero

9.Promijeni pripadnost primarnoj grupi korisnici2 (-g) za korisnika pero

usermod -g korisnici2 pero

10. Više nam ne treba korisnik pero , obrišimo ga , kao i njegov home direktorij i sve datoteke unjemu (-r), čak iako je već logiran (-f)

userdel -f -r pero

Runlevels

Runlevel-i su modovi ili stanja rada svakog UNIX/Linux operativnog sustava. Kod podizanjaoperativnog sustava, sustav se podiže u određeni runlevel ovisno o potrebama:

Za poslužitelje (servere) se primjerice često podiže runlevel 3 koji nam omogućava višekorisnički●

rad s podignutom mrežom i svim mrežnim servisima (daemon-ima) te svim ostalimfunkcionalnostima,S druge strane za desktop računala se obično podiže runlevel 5 , koji ima sve mogućnosti kao●

runlevel 3 ali ima i grafičko sučelje koje se u UNIX/Linux sustavima zove: X Window System.Osim toga za posebne namjene se koriste i ostali runleveli:●

runlevel 1 : koristi se za održavanja , kada ne želimo da se itko može spojiti na sustav preko❍

mreže, već samo lokalni administrator (root korisnik), - koristi se za potrebe popravljanja većihgrešaka ba sustavu , tvrdom disku i sl.runlevel 0 : koristi se za gašenje sustava , ovaj runlevel se brine o tome da se svi programi i❍

servisi uredno ugaserunlevel 6 : koristi se za restartanje sustava , sistem rada je sličan kao runlevel 0. Popis i❍

malo više detalja o runlevelima pogledajmo u tablici:

Page 119: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 119/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Kod svakog startanja operativnog sustava, nakon što se učita Linux kernel, pokreće se prvi proces tj.init program, on čita datoteku /etc/inittab u kojoj su definirani runleveli.init proces osim toga pokreće i sve ostale procese na sustavu a sam se pokreće kao servis (daemon ). On na osnovi runlevel broja pokreće skripte koje se nalaze u direktorijima unutar glavnogdirektorija /etc/rc.d .

Osnovna struktura direktorija unutar /etc/rc.d je :

drwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc0.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc1.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc2.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc3.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc4.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc5.ddrwxr-xr-x 2 root root 4.0K Nov 11 15:05 rc6.d

Pri tome:rc0.d je init 0rc1.d je init 1itd.

Pogledajmo sadržaj direktorija za runlevel 3 ( /etc/rc.d/rc3.d ) :

lrwxrwxrwx 1 root root 22 Nov 11 15:04 K15htcacheclean ->../init.d/htcachecleanlrwxrwxrwx 1 root root 13 Jul 24 16:06 K35nmb -> ../init.d/nmblrwxrwxrwx 1 root root 13 Jul 24 16:06 K35smb -> ../init.d/smblrwxrwxrwx 1 root root 20 Jul 24 16:06 K50netconsole -> ../init.d/netconsolelrwxrwxrwx 1 root root 15 Nov 11 15:05 K50snmpd -> ../init.d/snmpdlrwxrwxrwx 1 root root 19 Nov 11 15:05 K50snmptrapd -> ../init.d/snmptrapdlrwxrwxrwx 1 root root 17 Jul 24 16:06 K73winbind -> ../init.d/winbindlrwxrwxrwx 1 root root 14 Nov 11 15:05 K74nscd -> ../init.d/nscd

Page 120: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

lrwxrwxrwx 1 root root 15 Nov 11 15:04 K75netfs -> ../init.d/netfslrwxrwxrwx 1 root root 19 Jul 24 16:06 K75quota_nld -> ../init.d/quota_nldlrwxrwxrwx 1 root root 19 Nov 11 15:04 K75udev-post -> ../init.d/udev-postlrwxrwxrwx 1 root root 15 Nov 11 15:05 K87named -> ../init.d/namedlrwxrwxrwx 1 root root 21 Jul 24 16:06 K87restorecond ->../init.d/restorecondlrwxrwxrwx 1 root root 17 Jul 24 16:06 K87rpcbind -> ../init.d/rpcbindlrwxrwxrwx 1 root root 21 Jul 24 16:06 K89portreserve ->../init.d/portreservelrwxrwxrwx 1 root root 15 Nov 11 15:04 K89rdisc -> ../init.d/rdisclrwxrwxrwx 1 root root 18 Jul 24 16:06 S08iptables -> ../init.d/iptableslrwxrwxrwx 1 root root 21 Jul 24 16:06 S08modules_dep ->../init.d/modules_deplrwxrwxrwx 1 root root 17 Nov 11 15:04 S10network -> ../init.d/networklrwxrwxrwx 1 root root 17 Nov 11 15:05 S12rsyslog -> ../init.d/rsysloglrwxrwxrwx 1 root root 14 Jul 24 16:06 S55sshd -> ../init.d/sshdlrwxrwxrwx 1 root root 16 Jul 24 16:06 S56xinetd -> ../init.d/xinetdlrwxrwxrwx 1 root root 19 Jul 24 16:06 S65saslauthd -> ../init.d/saslauthdlrwxrwxrwx 1 root root 18 Jul 24 16:06 S80sendmail -> ../init.d/sendmaillrwxrwxrwx 1 root root 15 Nov 11 15:04 S85httpd -> ../init.d/httpdlrwxrwxrwx 1 root root 15 Jul 24 16:06 S90crond -> ../init.d/crondlrwxrwxrwx 1 root root 11 Nov 11 15:04 S99local -> ../rc.local

Vidimo da su sve S* i K* datoteke zapravo simbolički linkovi na datoteke koje se nalaze unutardirektorija /etc/rc.d/init.d .To je tako zbog toga što sve servise (daemone) tj. njihove skripte kreiramo samo na jednom mjestu (/etc/rc.d/init.d ) a onda u svakom runelevel direktoriju ( /etc/rc.d/rc*.d ) trebamo samokreirati simbolički link koji ako mu ime počinje s K , će biti pokrenut s opcijom stop , a ako mu imepočinje sa S , biti će pokrenut sa startOno što je važno kod izvornih skripti koje se nalaze unutar direktorija /etc/rc.d/init.d je to damoraju imati minimalno implementirane tri opcije ( stop , start , restart ).

Osim toga, u slučaju RedHat baziranik Linux-a [pr. CentOS] ako skripta sadrži ključnu riječ #chkconfig , parametri iza nje će se koristiti za automatsko kreiranje /etc/rc.d/rc*.d simboličkihlinkova.

Kako to radi (sistemski dio)

Važno je znati je da je PID od init procesa 1 , pošto je on prvi proces koji starta sve ostale procese ibrine se o njima.Standardno se podiže runlevel 3, kod Linux-a koji ne startaju grafičko sučelje (X Window) a za one kojiga startaju , se podiže runlevel 5.Dakle ako je standardni (default) runlevel 3, dešava se slijedeće:

1. Nakon startanja kernela init ulazi u direktorij /etc/rc.d/rc3.d/2. Iz tog direktorija pokreću se sve skripte koje u imenu počinju sa K i to prema broju. Dakle prvo snajmanjim brojem pr. K1….. , K2……. , pa K3….. i tako do najvećeg broja i to tako da se svaka od njihpoziva sa opcijom stop . Dakle K1… stop ,

pr.: K15htcacheclean stop i to tako za sve njih koliko god ih ima.

Page 121: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 121/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Dakle prvo se stopiraju svi servisi.

3. Nakon toga se startaju one skripte sa S u imenu (ovdje se zapravo startaju servisi), ponovno snajmanjim brojem pr. S1….. , S2……. , pa S3….. i tako do najvećeg broja i to tako da se svaka od njihpoziva sa opcijom start . Dakle S1… start ,

pr.: S10network start i to tako za sve njih koliko god ih ima.

Zbog čega brojevi kod imena S i K skripti ?

Zbog toga da točno možemo kontrolirati koja će se prije ili poslije koje skripte pokrenuti.

Jedina mala razlika su runleveli 0 (halt/shutdown) i 6 (reboot).Dakle /etc/rc.d/rc0.d/ i /etc/rc.d/rc6.d/ sastoje se 99% od datoteka imena K* , pošto oni,kod gašenja ili restarta računala moraju “uredno” stopirati tj.poubijati (odatle Kill) sve servise. Običnosu samo dvije S* datoteke.

Prva je koja nakon što je sve uredno stopirano preko K* poubija sve što je možda zaostalo.Druga je ona koja u slučaju init 0 gasi računalo a u slučaju init 6 (restart) restarta računalo.

Napomena : U svakom trenutku, moguće je promijeniti runlevel, naredbom init

Primjeri.

1. Želimo li ugasiti računalo to možemo napraviti sa:

init 0

2.Ako ga želimo restartati onda pokrećemo:

init 6

3. Želimo nešto raditi/popraviti na sustavu i ne želimo dozvoliti pristup nikome preko mreže vež samonama (root), koji smo fizički ispred računala/poslužitelja, tada možemo koristiti:

init 1

Sistemski servisi/daemoni

Sistemski servisi koji se u Unix/Linux svijetu nazivaju “Daemoni” su programi koji se pokreću upozadini (background) i koji su zamišljeni da rade bez stalne kontrole i uplitanja korisnika. Dakle onisu zaduženi za pojedine funkcionalnosti sustava. Naime funkcionalnost cijelog Linux sustava jeraspodjeljena u cijeli niz daemona, od kojih svaki odrađuje svoj zadatak.Pr. jedna skripta podižedaemone koji startaju mrežne kartice i konfiguriraju ih, druga koja podiže jedan mrežni servis (pr. SSHServer) , treća koji podiže drugi mrežni servis (pr. NFS mrežni datotečni sustav) itd. svaki za svojunamjenu. U praksi, daemone pozivaju shell skripte koje se inicijalno nalaze u direktoriju/etc/rc.d/init.d/ te koje sustav starta/stopira ili restarta prema pravilima koja smo već objasniliu prijašnjem poglavlju. Kako ih možemo ručno pokretati/stopirati i restartati te što moraju sadržavati,

Page 122: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

objasniti ćemo kroz primjere.

Slijedi primjer izlistanja početka skripte koja starta SSH Server ( /etc/rc.d/init.d/sshd ) na kojoj ćemoopisati procese inicijalizacije.

#!/bin/bash## sshd Start up the OpenSSH server daemon## chkconfig: 2345 55 25# description: SSH is a protocol for secure remote shell access. \# This service starts up the OpenSSH server daemon.

... ... ...

Dakle linija # chkconfig: 2345 55 25 znači slijedeće:

prvi niz brojeva ( 2345 u ovom slučaju) znači u kojim runlevel-ima će se pokretati ova skripta●

drugi broj ( 55 u ovom primjeru) je prioritet kod startanja ( S* broj)●

treći broj ( 25 u ovom primjeru) je prioritet kod stopiranja ( K* broj)●

Naime u ovom slučaju sistem će kreirati simboličke linkove naziva S55sshd u runlevel direktorijima2,3,4 i 5 ( /etc/rc.d/rc*.d )te K25sshd u preostalim runlevelima u kojima sistem mora gasiti ovaj servis,dakle :

0 (shutdown),●

1 (singleuser , no network) i●

6 (reboot)●

Osim gore navedenog svaka skripta koja poziva određene daemone mora imati minimalnoimplementirane tri opcije:

stop ,●

start ,●

restart●

Kako to pojednostavljeno izgleda na primjeru SSH skripte (nastavak na početak/etc/rc.d/init.d/sshd skripte izlistane gore)

... ... ...

# Some functions to make the below more readableKEYGEN=/usr/bin/ssh-keygenSSHD=/usr/sbin/sshdRSA1_KEY=/etc/ssh/ssh_host_keyRSA_KEY=/etc/ssh/ssh_host_rsa_keyDSA_KEY=/etc/ssh/ssh_host_dsa_keyPID_FILE=/var/run/sshd.pid

... ... ...

Page 123: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 123/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

start(){ [ -x $SSHD ] || exit 5 [ -f /etc/ssh/sshd_config ] || exit 6 # Create keys if necessary if [ "x${AUTOCREATE_SERVER_KEYS}" != xNO ]; then do_rsa1_keygen do_rsa_keygen do_dsa_keygen fi

echo -n $"Starting $prog: " $SSHD $OPTIONS && success || failure RETVAL=$? [ $RETVAL -eq 0 ] && touch $lockfile echo return $RETVAL}

stop(){ echo -n $"Stopping $prog: " killproc -p $PID_FILE $SSHD RETVAL=$? # if we are in halt or reboot runlevel kill all running sessions # so the TCP connections are closed cleanly if [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then trap '' TERM killall $prog 2>/dev/null trap TERM fi [ $RETVAL -eq 0 ] && rm -f $lockfile echo}restart() { stop start}

... ... ...

Vidimo da je unutar metoda start/stop/restart niz naredbi koje zapravo u slučaju pozivanja metodestart startaju SSH daemon tj /usr/sbin/sshd sa određenim parametrima i argumentima odnosnometoda stop stopira isti daemon odnosno restart, prvo poziva metodu stop pa metodu start .

Nadalje postoji i naredba (za Linuxe bazirane na Redhatu), s kojom možemo vidjeti u kojimrunlevelima se koji servis (daemon tj. skripta koja ga starta/stopira) podiže ili ne podiže. Naredba jechkconfig. Možemo ju samo pozvati bez opcija i prekidača ili s njima.

Mi ćemo probati ispisati sve runlevele za skriptu (daemon) koju smo maloprije gledali (sshd):

Page 124: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

chkconfig --list sshdsshd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

Ovdje vidimo ono o čemu smo pričali gore (pogledajte 2,3,4 i 5).

S naredbom chkconfig moguće je i naknadno mijenjati runlevele skripti(servisa/daemona) koji su već na sustavu ili dodavati nove (ili brisati postojeće).

Primjeri

1.Želimo da se HTTP server (httpd) starta sa sustavom automatski (dakle da bude u runlevelima 2,3,4 ,5)

chkconfig httpd on

Provjera:

chkconfig --list httpd

httpd 0:off 1:off 2:on 3:on 4:on 5:on 6:off

2. Želimo ipak da se HTTP server ne starta više automatski:

chkconfig httpd off

Provjera:

chkconfig --list httpd

httpd 0:off 1:off 2:off 3:off 4:off 5:off 6:off

3. Kreirali smo svoju novu skriptu, naziva /etc/rc.d/init.d/moj-servis , koja sadrži start ,stop i restart opcije te ju želimo dodati pomoći chkconfig naredbe ,da se starta automatski sasustavom.Prvo ju dodajmo u chkconfig90

chkconfig --add moj-servis

Sada joj dodjelimo prava da se starta automatski u runlevelima 2,3,4,5

chkconfig moj-servis on

Package Management

Page 125: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 125/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

U radu i primjerima koji slijede, koristiti ćemo Red Hat package management (RPM),koji koriste i druge distribucije Linux-a, bazirane na Red Hat-u, poput:

CentOS Linux●

SUSE Linux●

Open SUSE Linux●

Fedora Linux●

Oracle Linux●

…●

Ekstenzija paketa je .rpm .

RPM Package manager

RPM Package manager nam omogućava:

instalaciju paketa●

deinstalaciju paketa●

provjeru ispravnosti (checksum) paketa●

pretraživanje paketa●

update paketa●

Ekvivalent Linux paketa u Windows svijetu je instalacija nekog programa – u formatu .msi ili .exe :Npr. Setup.exe ili Setup.msi

Paketi se uglavnom nalaze na tkzv. javnim repository-jima poput “EPEL” repozitorija

EPEL repozitorij za RedHat bazirane Linux-e , verzije 6.x , i to za 64.bitnu x86 platformu procesora, jedostupan na :

http://mirror.datacenter.by/pub/fedoraproject.org/epel/6/x86_64/

Repozitorij je pripremljeni direktoriji na Web-u, koji sadrži softverske pakete (.rpm) i ostale specifičnedatoteke, s kojega možete “skinuti ” (download) željene dostupne pakete. Podržani načini skidanja supreko HTTP ili FTP protokola.

Svaki RPM paket može biti i kriptografski verificiran pomoću:

GPG (GNU Privacy Guard) – alternativa PGP i●

MD5●

Vratimo se paketima i onome što se nalazi unutar svakog paketa:

Header – informacije o samom paketu: verzija, arhitektura, opis, listu datoteka, …●

Payload – arhiva samih datoteka obično u cpio formatu ( koja je komprimirana sa gzip-om, noviji●

formati podržavaju i druge kompresije)Signature (potpis) – koji osigurava integritet paketa [GPG ili MD5]●

U trenutku kada radimo neku operaciju sa paketima, oodređene informacije o svakom paketu sesnimaju/čitaju u/iz interne RPM baze podataka (na samom računalu). Interna RPM baza podatakasadrži listu instaliranih paketa na sustavu. Bazu možemo pretraživati po raznim kriterijima te možemo

Page 126: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

provjeriti verzije instaliranih paketa.

Primjeri

Ispiši verziju paketa imena telnet :

rpm -q telnet

Izlistaj (-q) sve (-a) instalirane pakete:

rpm -qa

Upotreba wildcard-a

ispiši sve instalirane pakete i pronađi samo onaj koji u imenu ima telnet*

rpm -qa "telnet*"

Pronađi koji paket je instalirao točno određenu datoteku (s apsloutnom putanjom) pr. datoteka ssh ,koja se nalazi u /usr/bin/ssh:

rpm -qf /usr/bin/sshopenssh-clients-5.3p1-84.1.el6.x86_64

Osnovni prekidači rpm naredbe su:-i IME : install – instaliraj paket (IME može biti i URL [FTP ili HTTP])-U IME : Upgrade – nadogradi paket-e IME : Erase – obriši/uninstaliraj paket-V IME : Verify – provjeri paket, provjeravaju se :

Owner,●

Group,●

Mode,●

MD5 checksum,●

Size,●

Major and Minor Version number,●

Symlink,●

Modification time●

Dodatni korisni prekidači : -h (hash marks -#) i -v (verbose)

Korisni prekidaći za pretraživanje (malo slovo Q):

-qi IME: ispiši opis paketa (ovdje je i ime grupe kojoj pripada)-qg IME : ispiši listu paketa koji pripadaju određenoj grupiPr.: rpm -qg “System Environment/Daemons”

-ql IME : ispiši listu datoteka unutar paketaPr.: rpm -ql openssh-clients

Page 127: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 127/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

-qc IME : ispiši konfiguracijske datoteke određenog paketa-qs IME : ispiši stanje datoteka unutar paketa, poruke mogu biti slijedeće:

normal – Datoteka je instalirana,●

not installed – datoteka iz paketa nije instalirana●

replaced – datoteka je zamijenjena●

I na kraju o nedostacima rpm paketa i samog managera paketa:

Ne može riješiti ovisnosti o nekom drugom paketu (dependencies)●

Jedino što RPM može napraviti po pitanju ovisnosti o nekom drugom paketu je da prije instalacijeprovjeri da li je taj paket instaliran i upozori vas da vam nedostaju određeni paketi, ali on ih za vasneće moći instalirati. To morate sami (moguće je [i dosta često] da neki paket koji nedostaje ovisi onekom trećem ili četvrtom i tako dalje)

YUM Package Management

YUM (Yellow dog Update Modified) je nadogradnja na mogućnosti RPM package managera.Možemo reći da je on frontend za RPM package manager.YUM omogućava praćenje ovisnosti (dependencies) o drugim paketima i automatski ih riješava:On to riješava uvođenjem dodatka na RPM repository (Metadata), koji je zapravo dodatna bazapodataka koja sadrži podatke o svakom paketu i svim međuovisnostima (dependency) između svihrpm paketa.

Svaki puta kada pokrenete yum , on se spaja na sverepozitorije na internetu, koji su vam dodani u sustav.

Nakon pokretanja yum povlači sve YUM baze podataka s njih, na vaše računalo. Na taj način u svakomtrenutku usporedbom instaliranih paketa i onih koji su u YUM bazi podataka, YUM “zna” da li sepojavila novija verzija nekog programa (uz osnovnu funkcionalnost da su mu poznate međuovisnostipaketa [dependencies]).

Kako se instaliraju paketi pomoću YUM-a ?

Procedura je slijedeća:1. Dodajete novi repository (ako nije dodan, a baš na njemu se nalazi paket koji trebate), ako već jedodan, onda preskačete ovaj korak,2. Kod (svakog) pokretanja YUM-a, sinkroniziraju se meta podaci (Metadata) sa Web repozitorija nalokalno računalo,3. YUM kopira RPM pakete te provjerava ovisnosti (dependencies), ako postoje,prvo se kopiraju iinstaliraju svi paketi koji su prethodno potrebni, a tek onda oni koji slijede.

Page 128: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Koji su osnovni prekidači YUM-a ?

Osnovni prekidači (najčešće korišteni) , su :

yum update : napravi update svih paketa (full system update)yum install IME : Instaliraj novi paket imena (IME)yum erase IME : Uninstaliraj paket imena (IME)yum search IME : pretraži sve pakete u potrazi za ključnom riječi (IME)yum list installed : Ispiši popis svih instaliranih paketayum grouplist : Ispiši popis svih instaliranih grupa paketayum groupinstall IME : Instaliraj grupu paketa , npr:

yum groupinstall "Development Tools"

yum groupremove IME : Uninstaliraj grupu paketa , npr

yum groupremove "Development Tools"

PrimjeriDodavanje novog repozitorija, poluautomatski (pr. EPEL za 64). Dakle otišli smo na EPEL repozitorij:http://mirror.datacenter.by/pub/fedoraproject.org/epel/6/x86_64 te želimo instalirali automatski tajrepozitorij

(tu se nalazi paket epel-.rpm).

Metoda 1.

Korištenjem naredbe wget koja će napraviti download RPM (package) datoteke koju ćemo instalirati,pomoću RPM paket manager programa rpm u drugom koraku (drugi red)

wgethttp://mirror.datacenter.by/pub/fedoraproject.org/epel/6/x86_64/epel-release-6-8.noarch.rpmrpm -ivh epel-release-6-8.noarch.rpm

Metoda 2.

Korištenjem RPM paket managera, koji podržava HTTP i FTP download direktno, uz instaliranje istogpaketa u jednom koraku :

rpm -ivhhttp://mirror.datacenter.by/pub/fedoraproject.org/epel/6/x86_64/epel-release-6-8.noarch.rpm

Provjerimo da li je novi repozitorij dodan (treba se pojaviti epel):

yum repolist

Naš ispis slijedi:

Page 129: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 129/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Loaded plugins: downloadonly, fastestmirror

Loading mirror speeds from cached hostfileepel/metalink * base: mirrors.paknet.org * epel: ftp.upjs.sk * extras: mirrors.paknet.org * rpmforge: mirror.de.leaseweb.net * updates: mirrors.paknet.orgInternet2baseepelepel/primary_dbextrasrpmforge

Vidimo da je epel izlistan te da je napravljen download s njega, dakle to je u redu.

U slučaju da epel (ili neki drugi) repozitorij nije uredno dodan u listu aktivnih repozitorija , možemoga ručno uključiti

yum --enablerepo=epel

Instalirajmo Midnight Commander (Norton Commander klon za Linux), ime paketa je mc

yum install mc

Uninstalirajmo Midnight Commander (Norton Commander klon za Linux), ime paketa je mc

yum erase mc

Arhiviranje i komprimiranje/dekomprimiranje podataka

Za arhiviranje i čitanje arhiviranih datoteka koristi se naredba tar

Nastala je zbog potrebe za arhiviranjem podataka na tračne medije, za pohranu podataka (backup).

Naziv je došao od Tape ARchive (tračna arhiva).

Arhiviranje, komprimiranje i dekomprimiranje

Za potrebe arhiviranja podataka ili komprimiranje i dekomprimiranje, najčešće se koristi naredba tar.Razlikujmo arhiviranje od komprimiranja (ili dekomprimiranja) jer arhiviranje uključuje i više od toga.

tar osim samih datoteka i/ili direktorija može spremati i sve ovlasti (permissions) datoteka idirektorija.

Ovo je vrlo bitno jer u slučaju da smo arhivirali (napravili backup) podatke i kasnije ih želimo

Page 130: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

dearhivirati tj. vratiti nazad na izvorno mjesto, želimo da nam budu sačuvane i sve ovlasti (odvlasnika, grupe i ostalih , do rwx modova za svakoga od njih).

Neki od prekidača naredbe tar su :

c – create (kreiraj)●

v - verbose (detaljniji ispis)●

t – izlistaj sadržaj●

f – slijedeći argument je naziv datoteke●

z – dodatno komprimiraj (gzip format)●

j – dodatno komprimiraj (bzip2 format)●

p – sačuvaj sve ovlasti (preserve permissions – ovo je standardno ako ste root)●

Primjeri

Kreiraj tar arhivu od trenutnog direktorija ( . ), naziva arhiva.tar

tar cvf arhiva.tar .

Kreiraj tar arhivu od trenutnog direktorija ( . ), direktno na traku (/dev/st0)

tar cvf /dev/st0 .

Kreiraj komprimiranu tar arhivu od trenutnog direktorija ( . ) , naziva arhiva.tgz

tar cvzf arhiva.tgz .

Ispiši samo sadržaj datoteke arhiva.tgz

tar tvf arhiva.tgz

Odkomprimiraj i dearhiviraj arhivu: arhiva.tgz

tar xvzf arhiva.tgz

Komprimiranje i dekomprimiranje

U slučajevima kada nam je potrebno samo komprimiranje ili dekomprimiranje datoteka (i direktorija),zbog potreba arhiviranja, kopiranja s medija na medij (pr. tvrdi disk → USB stick) ili preko mreže,možemo koristiti neke od često korištenih programa.

gzip i gunzip : komprimiranje (gzip) i dekomprimiranje (gunzip)

zip i unzip : Komprimiranje (zip) i dekomprimiranje (unzip)

bzip2 i bunzip2 :Komprimiranje (bzip2) i dekomprimiranje (bunzip2)

Page 131: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 131/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

gzip

gzip je program odnosno format datoteka (.gz ili .gzip) koji je nastavo kao zamjena za komercijalniUNIX alat/naredbu compress , u sklopu GNU projekta, početkom 1992.g. On je baziran na “DEFLATE”algoritmu koji je kombinacija “LZ77” i “Huffman coding” algoritama zbog činjenice da su u to vrijeme“LZW” i drugi algoritmi za kompresiju bili zaštićeni patentima.

Jednu varijantu LZ77 algoritma zakomprimiranje/dekomprimiranje koristi i ALDC (AdaptiveLossless Data Compression) algoritam koji koriste tračniuređaji (Poglavlje : Rad s tračnim uređajima

LZ4 format komprimiranja/dekomprimiranja podataka u radu (on the fly), koji je baziran na LZ77,koristi i ZFS datotečni sustav (uz gzip :DEFLATE, LZJB i druge), što govori o njegovoj brzini rada.

Svaka gzip datoteka osim samih komprimiranih podataka sadrži i CRC-32 Checksum, tako da seintegritet podataka može provjeriti u bilo kojem trenutku.

Česti prekidaći naredbe gzip:

-d : dekomprimiraj (isto kao i pozivanje naredbe gunzip)

-c : izlaz je na standard output (stdout) tako da će izvorne datoteke biti sačuvane

-l : pogledajmo koliki je omjer komprimiranja postignut da gzip datoteci

-r : rekurzivno komprimiranje svih datoteke unutar svih poddirektorija

-t : testirajmo komprimiranu arhivu

-1 … -9 : faktor/brzina komprimiranja : -1 najbrže (i “najlošije”) , … -9 najsporije (i “najbolje”)

Primjeri

Prvo izlistajmo daoteke i direktorije

ls -alh

total 164Kdrwxr-xr-x 3 root root 4.0K Aug 7 11:27 .drwxr-xr-x 3 root root 4.0K Aug 7 11:18 ..drwxr-xr-x 2 root root 4.0K Aug 7 11:27 podaci-rw-r--r-- 1 root root 33K Aug 7 11:22 text1.txt-rw-r--r-- 1 root root 112K Aug 7 11:22 text2.txt-rw-r--r-- 1 root root 2.7K Aug 7 11:20 text.txt

1. Komprimirajmo datoteke : text.txt , text1.txt i text2.txt :

Page 132: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

gzip text.txt text1.txt text2.txt

Svaka datoteka će biti komprimirana a izvorne (nekomprimirane neće biti zadržane).

Pogledajmo što smo dobili:

ls -alh

total 24Kdrwxr-xr-x 3 root root 4.0K Aug 7 11:30 .drwxr-xr-x 3 root root 4.0K Aug 7 11:18 ..drwxr-xr-x 2 root root 4.0K Aug 7 11:27 podaci-rw-r--r-- 1 root root 157 Aug 7 11:22 text1.txt.gz-rw-r--r-- 1 root root 391 Aug 7 11:22 text2.txt.gz-rw-r--r-- 1 root root 66 Aug 7 11:20 text.txt.gz

2. Odkomprimirajmo priješnje komprimirane datoteke:

gzip -d text.txt.gz text1.txt.gz text2.txt.gz

Mogli smo koristiti i naredbe:

gunzip text.txt.gz text1.txt.gz text2.txt.gz

ili koristiti regularne izraze s obije naredbe, pr.:

gunzip *.txt.gz

3. Komprimirajmo sada datoteku : text2.txt ali tako da zadržimo (-c) i izvornu nekomprimiranudatoteku.

Pošto će sve ići na standard output, moramo to sve i redirektati u izvorišnu gz ili gzip datoteku:

gzip -c text2.txt> text2.txt.gz

Pogledajmo sadržaj direktorija:

ls -alh

total 168Kdrwxr-xr-x 3 root root 4.0K Aug 7 11:41 .drwxr-xr-x 3 root root 4.0K Aug 7 11:18 ..drwxr-xr-x 2 root root 4.0K Aug 7 11:27 podaci-rw-r--r-- 1 root root 33K Aug 7 11:22 text1.txt-rw-r--r-- 1 root root 112K Aug 7 11:22 text2.txt-rw-r--r-- 1 root root 391 Aug 7 11:41 text2.txt.gz-rw-r--r-- 1 root root 2.7K Aug 7 11:20 text.txt

Vidljivo je da je i izvorna datoteka ostala netaknuta te da je kreirana nova koju smo komprimirali(text2.txt.gz)

Page 133: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 133/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

4. Pogledajmo kolika (-l) kompresija je postignuta na našoj datoteci:

gzip -l text2.txt.gz

compressed uncompressed ratio uncompressed_name 391 114048 99.7% text2.txt

Postignuta je vrlo velika kompresija od 99.7% jer se radi o tekstualnoj datoteci koja sadrži samonizove brojeva koji se ponavljaju

5. Komprimirajmo sve datoteke u direktoriju podaci :

Prvo pogledajmo sadržaj direktorija podaci:

ls -al podaci/

total 160drwxr-xr-x 2 root root 4096 Aug 7 12:01 .drwxr-xr-x 3 root root 4096 Aug 7 11:59 ..-rw-r--r-- 1 root root 33408 Aug 7 11:27 text3.txt-rw-r--r-- 1 root root 114048 Aug 7 11:27 text4.txt-rw-r--r-- 1 root root 2688 Aug 7 11:27 text5.txt

Sada sve to komprimirajmo rekurzivno (-r) - dakle sve datoteke unutar svih poddirektorija (akopostoje) unutar direktorija podaci:

gzip -r podaci

Izlistajmo sada taj direktorij ponovno:

ls -al podaci/

total 20drwxr-xr-x 2 root root 4096 Aug 7 12:03 .drwxr-xr-x 3 root root 4096 Aug 7 11:59 ..-rw-r--r-- 1 root root 157 Aug 7 11:27 text3.txt.gz-rw-r--r-- 1 root root 391 Aug 7 11:27 text4.txt.gz-rw-r--r-- 1 root root 67 Aug 7 11:27 text5.txt.gz

Vidljivo je da su sve datoteke komprimirane i da izvorne nekomprimirane nisu zadržane !

gzip može komprimirati samo datoteke a ne i direktorije sdatotekama ! Za tu namjenu koristimo naredbu tar saugrađenom gzip metodom komprimiranja ili drugeprograme za komprimiranje/dekomprimiranje.

Page 134: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

zcat

Naredba zcat poziva funkcionalnosti naredbe gzip a funkcionalno se ponaša kao naredba cat.Daklezcat u letu odkomprimira sadržaj komprimirane datoteke te se nakon toga ponaša kao cat . Tomožemo promatrati i kao pozivanje naredbe gzip -c - koji sve šalje na standardni izlaz (stdout) tepozivanje naredbe cat nakon toga.

Primjeri

1.Izlistajmo komprimiranu datoteku text2.txt.gz koja u našem slučaju sadrži niz brojeva

zcat text2.txt.gz

111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555222222222222111111111111114444444444444433333333355555555555555

... ... ...

2. Ponovimo prijašnju naredbu s time da želimo pomoću grep naredbe pronaći samo red koji sadrži :“2211”

zcat text2.txt.gz | grep 2211

222222222222111111111111114444444444444433333333355555555555555

zip

Za razliku od gzip-a, zip arhive mogu komprimirati/dekomprimirati i direktorije i datoteke. ZIPformat je analogan kombinaciji naredbe tar i gzip.

ZIP format poput gzip formata koristi DEFLATE algoritam za komprimiranje i dekomprimiranje.

Unutar zip arhive, moguće je pohraniti cijelu strukturudirektorija i datoteka, uz sve njihove ovlasti.

Česti prekidaći naredbe zip su:

-r : rekurzivno koprimiranje direktorija i svih poddirektorija sa svim datotekama

-T : testiranje ispravnosti arhive

-x : ne ubacuj (Exclude) određene datoteke u arhivu

Page 135: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 135/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

-1 , … -9 : faktor/brzina komprimiranja : -1 najbrže (i “najlošije”) , … -9 najsporije (i “najbolje”)

Česti prekidaći naredbe unzip su :

-t : testiranje arhive

-o : kod dekomprimiranja, pregazi postojeće datoteke bez pitanja

-p : šalji sadržaj odkomprimirane zip arhive u Linux “Pipe”

Primjeri

1. Komprimirajmo datoteke : text.txt , text1.txt i text2.txt te ih sve ubacimo u ZIParhivu : arhiva.zip :

zip arhiva.zip text.txt text1.txt text2.txt

2.Komprimirajmo samo datoteku text1.txt u zip arhivu imena arhiva1.zip

zip arhiva1.zip text1.txt

adding: text1.txt (deflated 100%)

3.Testirajmo (-T) arhivu : arhiva.zip :

zip -T arhiva.zip

test of arhiva.zip OK

4. ISpišimo sadržaj zip arhive arhiva.zip:

unzip -l arhiva.zip

Archive: arhiva.zip Length Date Time Name--------- ---------- ----- ---- 2688 08-07-2014 11:20 text.txt 33408 08-07-2014 11:22 text1.txt 114112 08-07-2014 16:38 text2.txt--------- ------- 150208 3 files

5. Dekomprimirajmo sve datoteke iz zip arhive arhiva.zip , s time da pregazimo postojećedatoteke (ako ih ima) :

unzip -o arhiva.zip

Archive: arhiva.zip inflating: text.txt inflating: text1.txt inflating: text2.txt

Page 136: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

6. Dekomprimirajmo zip arhivu : arhiva1.zip (koja sadrži samo jednu tekstualnu datoteku) te jupošaljimo (“Pipe”) na naredbu more (pomoću prekidaća -p)

unzip -p arhiva1.zip | more

111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555

... ... ...

7.Komprimirajmo cijeli direktorij : podaci i sve njegove poddirektorije i datoteke rekurzivno, udatoteku podaci.zip.

zip -r podaci.zip podaci

adding: podaci/ (stored 0%) adding: podaci/text4.txt (deflated 100%) adding: podaci/text3.txt (deflated 100%) adding: podaci/text5.txt (deflated 99%)

bzip2

bzip2 je program za komprimiranje i dekomprimiranje, poput gzip-a. Dakle za rad s datotekama ane s direktorijima. Izlazna komprimirana datoteka ima ekstenziju .bz2

Za razliku od gzip i zip programa on koristi algoritam za komprimiranje i dekomprimiranje koji postižepuno bolje rezultate ali proces komprimiranja traje nešto dulje.

U biti proces se sastoji od nekoliko algoritama , prvi je : “Burrows–Wheeler transform” algoitam,nakon kojeg se primjenjuje “move-to-front transform” tj. MTF Algoritam i na kraju “Huffman coding”algoritam. Ova metoda se zove i “block-sorting” metoda komprimiranja.

Programe koji mogu komprimirati direktorije i datoteke(potencijalno i uz snimanje ovlasti svih datoteka i direktorijaunutar arhive), zovemo “File Archiver”-i

Česti prekidaći naredbe bzip2 :

-d : dekomprimiraj (isto kao i pozivanje naredbe bunzip2)

-c : izlaz je na standard output (stdout) tako da će izvorne datoteke biti sačuvane

Page 137: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 137/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

-k : sačuvaj izvorne datoteke (inaće će biti obrisane nakon što se kreiraju komprimirane datoteke)

-r : rekurzivno komprimiranje svih datoteke unutar svih poddirektorija

-t : testirajmo komprimiranu arhivu

-1 … -9 : faktor/brzina komprimiranja : -1 najbrže (i “najlošije”) , … -9 najsporije (i “najbolje”)

Primjeri

Pogledajmo naš direktorij:

ls -alh

total 164Kdrwxr-xr-x 3 root root 4.0K Aug 8 14:47 .drwxr-xr-x 4 root root 4.0K Aug 7 11:58 ..drwxr-xr-x 2 root root 4.0K Aug 7 14:10 podaci-rw-r--r-- 1 root root 33K Aug 7 11:22 text1.txt-rw-r--r-- 1 root root 112K Aug 7 16:38 text2.txt-rw-r--r-- 1 root root 2.7K Aug 7 11:20 text.txt

1. Komprimirajmo naše datoteke : text.txt , text1.txt i text2.txt jednu po jednu :

bzip2 text.txt text1.txt text2.txt

Pogledajmo što se dogodilo :

ls -alh

total 24Kdrwxr-xr-x 3 root root 4.0K Aug 8 14:49 .drwxr-xr-x 4 root root 4.0K Aug 7 11:58 ..drwxr-xr-x 2 root root 4.0K Aug 7 14:10 podaci-rw-r--r-- 1 root root 78 Aug 7 11:22 text1.txt.bz2-rw-r--r-- 1 root root 86 Aug 7 16:38 text2.txt.bz2-rw-r--r-- 1 root root 69 Aug 7 11:20 text.txt.bz2

Dakle izvorišne datoteke su prebrisane s novima - kao i kod gzip-a. Da bi to izbjegli trebali bi koristitiprekidać -k

2.Odkomprimirajmo ih sada sve zajedno:

bunzip2 *.bz2

3. Probajmo sada komprimirati datoteku text2.txt u datoteku text2.txt.bz2 korištenjem izlazana standardni izlaz (stdout) (-c) i redirekcije (>) u komprimiranu datoteku:

bzip2 -c text2.txt> text2.txt.bz2

Sve ostale operacije i prekidaći su gotovo identični kombinaciji naredbi: gzip / gunzip..

Page 138: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

bzcat

Naredba bzcat poziva funkcionalnosti naredbe bunzip2a funkcionalno se ponaša kao naredba cat.Dakle bzcat u letu odkomprimira sadržaj komprimirane datoteke te se nakon toga ponaša kao cat. To možemo promatrati i kao pozivanje naredbe bzip2 -c koji sve šalje na standardni izlaz (stdout) tepozivanje naredbe cat nakon toga. Ovo ponašanje je identićno naredbi zcat .

Primjeri

1. Ispišimo sadržaj datoteke komprimirane sa bzip2 : text2.txt.bz2 :

bzcat text2.txt.gz

111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555111111111111222222222222223333333333333344444444455555555555555222222222222111111111111114444444444444433333333355555555555555

... ... ...

2.Ponovimo prijašnju naredbu s time da želimo pomoću grep naredbe pronaći samo red koji sadrži :“2211”

bzcat text2.txt.bz2 | grep 2211222222222222111111111111114444444444444433333333355555555555555

Rad s tračnim uređajima

Za potrebe izrade sigurnosnih kopija (backup), najviše se koriste tračni uređaji i same trake kao medijza pohranu podataka.

Neke od slabo poznatih činjenica o trakama:

Podaci se na trake zapisuju serijski (u nizu)●

Mogu spremiti velike količine podataka (pr. LTO 6 : 2.5TB, tj. plan za LTO 8 je 12.8 TB po traci)●

Najjeftiniji su pouzdani medij za pohranu velike količine podataka●

I danas se koriste za pohranu podataka (backup) koja se obično negdje pohranjuje na određeno●

(duže) vrijeme

Specifikacija osnovnih karakteristika LTO traka:

Atribut LTO 1 LTO 2 LTO 3 LTO 4 LTO 5 LTO 6 LTO 7 LTO 8Datum prve upotrebe 2000.g. 2003.g. 2005.g. 2007.g. 2010.g. 2012.g. u pripremi u pripremiNazivni Kapacitet (bezkompresije) 100 GB 200 GB 400 GB 800 GB 1.5 TB 2.5 TB 6.4 TB 12.8 TB

Brzina zapisivanja na traku[MB/s] 20 40 80 120 140 160 315 472

Page 139: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 139/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Hardverska kompresija iomjer kompresije

ALDC

2:1

ALDC

2:1

ALDC

2:1

ALDC

2:1

ALDC

2:1

LTO-DC

2.5 : 1

Planirano

2.5 : 1

Planirano

2.5 : 1

Osim navedenog spomenimo još nekoliko važnih stvari o tračnim uređajima i trakama :

Trake su izdržljive:●

omougučavaju do nekoliko tisuća ubacivanja i izbacivanja iz tračnog uređaja❍

omogučavaju nekoliko stotina prepisivanja cijele trake❍

Slika (1) pokazuje kako izgleda jedan (DDS4) tračni uređaj i same trake za pohranu podataka:

Za rad s tračnim uređajima i trakama koristi se naredba mt (magnetic tape controll)

Prekidači naredbe mt :

-f – file device (ime uređaja /dev/…)●

rewind – premotaj traku na početak●

retension – premotaj na kraj pa na početak (zbog izjednačavanja napetosti trake)●

status – ispiši status●

reserve – rezerviraj – i nakon završetka snimanja●

release – oslobodi traku za drugi rad●

Page 140: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

erase – obriši cijelu traku●

offline – unload tape (izbaci traku)●

Primjeri

1.Premotaj traku (/dev/st0) na početak:

mt -f /dev/st0 rewind

2. Provjeri na kojem bloku se traka nalazi

mt -f /dev/st0 tell

3. Ispiši sve datoteke na traci

tar -tzf /dev/st0

4.Napravi restore direktorija www [na traci] ali prvo premotaj na početak

cd /root/restoredir/

mt -f /dev/st0 rewind

tar -xzf /dev/st0 www

vi Editor

vi editor je inicijalno razvijan za prve verzije UNIX-a (1976.g.), te je od tada dostupan na svimverzijama Unix-a i Linux-a koje postoje.

Ovo je jedini tekst editor koji ćemo naći na bilo kojem UNIX ili Linux baziranom operativnom sustavupa je bitno poznavati neke njegove osnove.

Koliko god da je netko navikao ne neki drugi tekst editor, upraksi nikada ne možemo biti sigurni koji tekst editor ćemozateći na nekom UNIX ili Linux sustavu, osim vi editora kojise nalazi na svima.

vi editor Ima dva osnovna moda rada:

insert mode : za upisivanje teksta●

naredbeni mod : za izvršavanje naredbi nad tekstom●

Upoznajmo osnovne naredbe, podjeljene u logičke cjeline:

Page 141: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 141/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Insert i append naredbe

i (insert) – ubaci tekst ispred●

a (append) – ubaci tekst iza●

o – otvori novi red ispod●

O – otvori novi red iznad●

I – ubaci tekst na početak reda●

A – ubaci tekst na kraj reda●

ESC - vraća u naredbeni mode●

Ako ne rade kursorske tipke:

h (lijevo)●

l (desno)●

j (dolje)●

k (gore)●

ESC - vraća u naredbeni mode●

Brisanje:

x (brisanje znaka: [znak po znak])●

dd (brisanje cijelog reda)●

Undo

u (undo prvu promjenu)●

U (undo sve promjene u redu)●

Ponavljanje naredbe

. (ponavlja zadnju naredbu)●

Kopiranje (Yank)

yw (kopiraj trenutnu riječ)●

2yw (kopiraj 2 riječi)●

yy ili Y (kopiraj trenutni red)●

2yy (kopiraj 2 reda)●

Paste

p (paste)●

Traženje

/pojam (traži riječ pojam )●

n (traži slijedeći pojam)●

N (traži prethodni nađeni pojam)●

Pronađi i zamjeni

%s/prvo/drugo/g (Zamjeni riječ prvo sa drugo )●

Snimanje

Page 142: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

:w (snimi)●

:wq (snimi i izađi iz vi-ja)●

:wq! (snimi i izađi iz vi-ja, čak i ako je otvorena datoteka read-only)●

Shell skripte

Podsjetimo se: Shell ili komandnolinijska ljuska je sučelje između korisnika i Operativnog sustava, iznjega pokrećemo razne programe i upravljamo cijelim sustavom. Postoji ih veći broj,od kojih svaki imaneke specifičnosti, mi ćemo se bazirati na bash (Bourne-Again SHell) shellu.

bash shell (bash) je Unix shell (command language interpreter [CLI]) napisan za GNU Projekt kaozamjena za Bourne shell (sh). u 1989.g.. Široko se koristi i danas je standardni (default) shell za Linuxi Mac OS X. Portan je i na Microsoft Windows, Novell NetWare i Android kroz razne terminal emulatore(aplikacije).

Dakle bash je naredbeni (command) processor, koji se pokreće u tekstualnom prozoru te omogućavakorisnicima da pokreću razne Unix/Linux naredbe. Bash također može čitati naredbe iz datoteke,zvane skripte.

Kod logiranja na sustav vrlo je vjerojatno da ćete koristiti upravo bash shell. Definicija raznihparametara logiranja za bash shell se nalazi u datotekama (za svakog korisnika ~ [home dir] ), koje seučitavaju ovim redosljedom:

/etc/profile za sve korisnike,1.

Potom se učitava, prvi od slijedećih koji postoji:

~/.bash_profile1.~/.bash_login2.~/.profile3.

U slučaju da se bash ne koristi kao login shell , učitava se : ~/.bashrc

~ znak označava vaš home direktorij

Bash shell nam daje mogućnost korištenja kratica na tipkovnici:

CTRL a - skoči na početak reda●

CTRL e - skoči na kraj reda●

CTRL c - prekini izvršavanje naredbe●

CTRL d - odlogiraj se●

CTRL d - još znači i pošalji End of File trenutnom procesu●

CTRL ALT Fn - prebaci se na n-ti terminal (n=1…6) : pr CTRL ALT F1●

CTRL z - privremeni prekid rada procesa (suspend)●

Najveća snaga svakog shella (komandnolinijske ljuske) je mogućnost izrade shell skripti. Bash namdaje prilično široke mogućnosti.

Page 143: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 143/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Svaka shell skripta mora zadovoljiti dva uvjeta:

1. Prvi red svake skripte mora sadržavati tkzv. sha-bang ili shebang, koji daje instrukcije operativnomsustavu. kakva je to skripta i što da prvo pokrene. U našem slučaju to je bash shell skripta, dakle zanjeno pokretanje sustav će za nas u pozadini prvo pokrenuti bash shell (može biti i neki drugi shell -kada pričamo o shell skriptama) pa našu skriptu u njemu.

Kako to izgleda (mora počinjati sa #! , nakon koje slijedi točna putanja do bash shella)

#!/bin/bash...

2. Skripta mora biti izvršna (eXecute). Dakle treba promijeniti ovlasti (permissions) da skripta postaneizvršna (pr. chmod +x ime.skripte)

Varijable

Podsjetimo se osnova Shell varijabli, pa možemo krenuti dalje. Osim standardnih (običnih) ienvironment varijabli moguće je definirati i konstante tj. varijable koje se neće mijenjati.

Za to se koristi naredba readonly iza koje slijedi varijabla i njena vrijednost:

Primjer

Definirajmo konstantu (varijablu) PI , koja će imati vrijednost 3.14 :

readonly PI=3.14

Polja (Array) Osim gore navedenih tipova varijabli, možemo koristiti i varijable polja (Array).Dakleako imamo potrebu unutar jedne varijable upisati više vrijednosti, koristiti ćemo polja (Array), poprincipu:

POLJE=(VRIJEDNOST1 VRIJEDNOST2 VRIJEDNOST3 ..)

Primjer 1. Kreirajmo jedno polje (varijablu) koja će sadržavati tri vrijednosti : jedan, dva, tri.

POLJE=(jedan dva tri)

Naše polje sada ima tri elementa, kako doći do kojeg elementa ? Jedan od načina je korištenjevitičaste zagrade za polje unutar koje možemo definirati elemente unutar uglatih zagrada. Kao naprimjeru, gdje ćemo ispisati prvi element polja [0] (broji se od 0)

echo ${POLJE[0]}

jedan

Ako želimo ispisati sve elemente moramo koristiti [*]. Odnosno to bi izgledalo ovako>

echo ${POLJE[*]}

Page 144: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

jedan dva tri

2. Napravimo for petlju s kojom ćemo ispisati elemente polja , jedan po jedan. kreirajmo datotekuimena:for.polje.sh , koja ć sadržavati:

#!/bin/bash

POLJE=(jedan dva tri)

for PETLJA in ${POLJE[@]}; do echo $PETLJA

done

Opis:

POLJE=(jedan dva tri) kreirali smo polje sa tri elementa

for PETLJA in ${POLJE[@]}; do kreiramo for petlju, koja internu varijablu PETLJA popunjavasa elementima polja (u svakom prolazu sa jednim)

echo $PETLJA ispisujemo varijablu PETLJA (u svakom prolazu for petlje)

Promijenimo ovlasti i pokrenimo skriptu:

chmod +x for.polje.sh

./for.polje.sh

jedandvatri

Brisanje polja ili elemenata polja

Moguće je brisati cijelo polje, pr. naše cijelo polje imena POLJE:

unset POLJE

ili možemo brisati samo pojedine elemente unutar polje, pr. obrišimo samo drugi element [1]:

unset POLJE[1]

Pogledajmo što smo dobili izbacivši drugi element polja:

echo ${POLJE[*]}

jedan tri

Operacije na varijablama

Page 145: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 145/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Brojanje duljine varijable ili prebrojaanje broja elemenata polja. Sintaksa je :

${#VAR}

Prebrojimo broj elemenata polja koje smo kreirali:

echo ${#POLJE}

3

U slučaju da je to bila obična varijabla, dobili bi rezultat prebrojavanja alfabeta unutar vrijednostivarijable.

Pr.: kreirajmo varijablu INVENTAR sa vrijesnosti monitor

INVENTAR=monitor

Prebrojimo sada vrijednost varijable (riječ monitor)

echo ${#INVENTAR}

7

Izvlačenja dijela vrijednosti varijable

Moguće je izvući dio vrijednosti varijable, prema principu :

${VARIJABLA:OFFSET:LENGTH}

OFFSET je odmak s lijeve strane od početka vrijednosti varijable

LENGTH je broj karaktera koliko želimo da se uzima

Primjer

Iz vrijednosti postojeće varijable INVENTAR izvucimo slova od 4-tog slova, 2 slijedeća slova : m o n i to r (to bi trebalo biti to)

echo ${INVENTAR:4:2}

to

Parametri pozicije

Često imamo potrebu prosljeđivanja više parametara našoj skripti. Primjerice želimo da se pripokretanju naše skripte moraju definirati dva parametra.

Parametri pozicije imaju slijedeće oznake na sustavu:

$0 Označava sami program koji pokrećemo (tj. našu skriptu)●

$1 Označava prvi parametar (prva pozicija)●

Page 146: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

$2 Označava drugi parametar (druga pozicija)●

$3 Označava treći parametar (treća pozicija)●

…itd.●

Primjer 1. Napravimo skriptu koja zbraja dva broja, na način da pozivamo našu skriptu sa dvaparametra , prvi je prvi broj a drugi je drugi broj. Kreirajmo slijedeću skriptu pozicija-zbroj.sh ,koja će sadržavati slijedeće :

#!/bin/bash

echo "Zbroj je : "echo $(( $1 + $2 ))

Promijenimo ovlasti i pokrenimo našu skriptu , s tim da ćemo joj proslijediti brojeve 5 i 4 (da ih skriptazbroji)

chmod +x pozicija-zbroj.sh

./pozicija-zbroj.sh 5 4Zbroj je :9

Uvjeti

Bash shell nam omogućava korištenje uvjeta, neki od češće korištenih su :

if - else●

case●

Postoje i uvjeti koji su definirani kao “File-based” odnosno koji su dodatak standardnim uvjetima kadaimamo potrebu unutar uvjeta provjeravati određena stanja datoteka ili direktorija. Često korišteni su:

-e (eXissting) Datoteka postoji●

-d (Directory) Direktorij postoji●

…●

Za posebne vrste datoteka

-b (Block) datoteka postoji i tipa je “Block device” (obično se nalaze unutar /dev/ direktorija)●

-c (Character) datoteka postoji i tipa je “Character device” (obično se nalaze unutar /dev/●

direktorija)-h (Symbolic Link) datoteka postoji i tipa je simbolički link “Symbolic link”●

…●

Osim toga postoje logički uvjeti na stringovima, neki od njih su:

STRING1==STRING2 STRING1 je jednak STRING2●

STRING1!=STRING2 STRING1 nije jednak STRING2●

-z string je prazan (empty)●

-n string nije prazan (nonempty)●

Page 147: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 147/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

I na kraju naravno, postoje i aritmetički uvjeti :

BROJ1 -eq BROJ2 BROJ1 je jednak (equal) broju BROJ2●

BROJ1 -ne BROJ2 BROJ1 nije jednak (non equal) broju BROJ2●

BROJ1 -gt BROJ2 BROJ1 je veći od (greater than) broja BROJ2●

BROJ1 -ge BROJ2 BROJ1 je veći od (greater than or equal) ili jednak broju BROJ2●

BROJ1 -lt BROJ2 BROJ1 je manji od (less than) broja BROJ2●

BROJ1 -le BROJ2 BROJ1 je manji od (less than or equal) ili jednak broju BROJ2●

…●

Primjeri

1. Primjer upotrebe if - else uvjeta: Tražimo od korisnika unos brojeva između 1 i 3 (uključujući) 3.Za svaki broj koji smo unjeli pomoću višestrukih if - else uvjeta provjeriti koji broj smo upisali, aako nije niti 1,2 ili 3 ispisati ćemo dodatnu poruku.

Kreirajmo datoteku if-else.sh , koja će sadržavati :

#!/bin/bash

echo -n "Unesite broj izmedu 1 i 3 (ukljucujuci 3) : "read brojif [ "$broj" = "1" ]; then echo "Upisali ste 1."else if [ "$broj" = "2" ]; then echo "Upisali ste 2." else if [ "$broj" = "3" ]; then echo "Upisali ste 3." else echo "Niste upisali broj izmedu 1 i 3 !" fi fifi

Opis:

echo -n Ispisuje poruku i ne baca nas u novi red nego ostaje u istom redu (-n)

read broj Naredba read očekuje naš unos s tipkovnice (ovdje unosimo podatke) te ih ubacuje uvarijablu broj

if [ “$broj” = “1” ]; then Ako je vrijednost ($) varijable broj jednaka 1 onda ide u slijedećired i preko echo naredbe ispisuje poruku

else inaće

if [ “$broj” = “2” ]; then ako je vrijednost varijable broj (ista provjera kao u prvom ifuvjetu) jednaka 2 , onda ide u slijedeći red i preko echo naredbe ispisuje poruku.

… i tako smo nanizali uvjet za uvjetom do kraja skripte

Page 148: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Sada moramo promijeniti ovlasti (da naša skripta postane izvršna [eXecutable]) i pozvati skriptu

chmod +x if-else.sh

Pokrenimo ju (pokrećemo ju sa ./ jer ju pokrećemo iz trenutnog direktorija )

./if-else.sh

Upisati ćemo broj 2 da vidimo što će se dogoditi:

Unesite broj izmedu 1 i 3 (ukljucujuci 3) : 2Upisali ste 2.

2. Napravimo shell skriptu koja provjerava da li imamo CD/DVD-ROM na našem poslužitelju. PodLinuxom to znači postojanje linka na /dev/cdrom, koji obično pokazuje na /dev/sr0 uređaj koji jeposeban tip datoteke (Block device) i označava CD/DVD-ROM uređaj. Dakle provjeravamo da li postojidatoteka tipa “Block Device” : /dev/sr0 . I ako postoji ispisujemo poruku da postoji a ako ne postojiispisujemo poruku da ne postoji.

Kreirajmo datoteku: if-special-file.sh sadržaja:

#!/bin/bash

if [ -b /dev/sr0 ];then echo "CD/DVD-ROM postoji"else echo "CD/DVD-ROM ne postoji"fi

Promijenimo joj ovlasti i pokrenimo ju:

chmod +x if-special-file.sh

./if-special-file.shCD/DVD-ROM postoji

3. Punovimo prvi primjer ali upotrebom uvjeta: case. Datoteka će se zvati uvjeti-case.sh isadržavati:

#!/bin/bash

echo -n "Unesite broj izmedu 1 i 3 (ukljucujuci 3) : "read brojcase $broj in 1 ) echo "Upisali ste 1." ;; 2 ) echo "Upisali ste 2." ;; 3 ) echo "Upisali ste 3."

Page 149: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 149/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

;; * ) echo "Niste upisali broj izmedu 1 i 3 !"esac

Promijenimo mu ovlasti i pokrenimo ga :

chmod +x uvjeti-case.sh

./uvjeti-case.sh

Petlje

Petlje koristimo kada imamo potrebu ponavljanja određenog dijela programa sve dok se ne zadovoljineki od uvjeta.

Najčešće su u upotrebi dvije vrste petlji :

while petlja se vrti u krug sve dok je uvjet točan●

until petlja se vrti u krug sve dok je uvjet netočan●

Moguće je imati i petlju u petlji (tkzv. ugnježđivanje)

Primjeri.

1. (while petlja) : Napravimo brojač (petlju) od 0 do 9. Kada se dođe do 9. petlja treba završiti.Kreirajmo datoteku imena : petlja-while.sh , koja sadrži:

#!/bin/bash

brojac=0while [ $brojac -lt 10 ]; do echo "Broj je :" $brojac brojac=$[$brojac + 1]done

Opis:

while petlja ima za uvjet da varijabla brojac ima vrijdnost manju ili jednaku 10 (-lt 10) tj: while[ $brojac -lt 10 ]; do sve dok je gore navedeni uvjet točan idi dalje: echo “Broj je :”$brojac ispiši poruku “Broj je :”, sa vrijednost ($) varijable brojac brojac=$[$brojac + 1]Povećava brojać za 1 done kraj petlje (koja se vrti u krug do se ne zadovolji uvjet pod while)

Sada joj promjenimo ovlasti i pokrenimo ju:

chmod +x petlja-while.sh

./petlja-while.sh

Page 150: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Broj je : 0Broj je : 1Broj je : 2Broj je : 3Broj je : 4Broj je : 5Broj je : 6Broj je : 7Broj je : 8Broj je : 9

2. (until petlja) : Napravimo brojač (petlju) od 0 do 9. Kada se dođe do 9. petlja treba završiti.Kreirajmo datoteku imena : petlja-until.sh , koja sadrži:

#!/bin/bash

brojac=0until [ $brojac -ge 10 ]; do echo "Broj je :" $brojac brojac=$[$brojac + 1]done

Opis: Razlika u odnosu na while petlju je upravo suprotna logika (sve dok je uvjet netočan): Uvjet je :sve dok je varijabla brojac veća ili jednaka 10 (-ge) , a pošto until petlja čeka netočan uvjet dobilismo isti rezultat kao u while petlji.

Promijenimo ovlasti skripti i pokrenimo ju:

chmod +x petlja-until.sh

./petlja-until.shBroj je : 0Broj je : 1Broj je : 2Broj je : 3Broj je : 4Broj je : 5Broj je : 6Broj je : 7Broj je : 8Broj je : 9

Liste naredbi

Liste odnosno nizove naredbi koristimo kada je potrebno pozvati naredbe u nizu, jednu za drugom.

Nizati naredbe možemo koristeći neke od operatora:

& operator koji se koristi za pokretanja nekog procesa u pozadini

Page 151: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 151/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

; operator kojim možemo nizati naredbe u nizu, sekvencijalno (završetkom prve naredbe u nizupokreće se druga, nakom njenog završetka slijedeća itd.)

|| ILI (OR) operator za nizanje naredbi poput ; , dakle nije bitno da li je prijašnja naredba uspješnozavršila

&& I (AND) operator za nizanje naredbi, ako je prva naredba uspješno završila (return status code=0)

Sintaksa je :

naredba1 list-operator naredba2 list-operator naredba3 …

Pr. Upotreba operatora &&:

naredba1 && naredba2

Primjeri

1. Pokrenimo dvije naredbe u nizu, i to samo ako je prva uspješno završila:

Ako postoji datoteka /dev/sr0 (ovo znači da postoji CD/DVD-ROM uređaj na sustavu), ispiši “CD/DVD-ROM postoji”

ls -alh /dev/sr0 && echo "CD/DVD-ROM postoji"brw-rw---- 1 root cdrom 11, 0 Jun 6 15:35 /dev/sr0

CD/DVD-ROM postoji

Opis:

Naredba ls -alh /dev/sr0 je vratila status 0 (OK) [dakle tražena datoteka postoji] te je sustavpokrenuo naredbu echo “CD/DVD-ROM postoji” i ispisao nam poruku.

Funkcije

Kao i većina programskih jezika i bash shell može koristiti funkcije. Funkcije implementiraju određeneradnje ili operacije koje ćemo potencijalno koristiti više puta unutar programa odnosno skripte.Korištenjem funkcija činimo kod čitljivijim (svaka funkcija bi trebala odrađivati određeni zadatak) iiskoristivijim (kod se ne bi trebao ponavljati, već pozivati funkciju).

Funkcije možemo koristiti na dva načina, sintaksa je :

function ime_funkcije {

naredbenaredbe

}

ili

Page 152: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

function ime_funkcije () {

naredbenaredbe

}

Osim toga ne moramo niti koristiti ključnu riječ function, pa će to izgledati ovako:

ime_funkcije {

naredbe naredbe

}

ili

ime_funkcije () {

naredbe naredbe

}

Možemo i ugnježđivati funkciju unutar funkcije.

Primjeri

1. Napravimo skriptu koja će imati dvije funkcije: jednu za zbrajanje dva broja i drugu za množenjedva broja. Skripta mora tražiti unos korisnika : prvi broj potom drugi broj i naziv matematičkeoperacije koju se želi izvršiti (zbrajanje ili množenje):

Kreirajmo datoteku funkcije1.sh , sadaržaja:

#!/bin/bash

echo "Upisi prvi broj pa drugi broj te operaciju : zbrajanje ili mnozenje:"

read broj1 broj2 operacija

function zbrajanje () { echo $(($broj1+$broj2))}

function mnozenje () { echo $(($broj1*$broj2))}

Page 153: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 153/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

case $operacija in zbrajanje ) zbrajanje ;; mnozenje ) mnozenje ;; * ) echo "Niste upisali : zbrajanje ili mnozenje"esac

Opis:

echo “Upisi … Ispiše tekst

read broj1 broj2 operacija očekujemo unos od korisnika , koji će se zapisati u tri varijable :

broj1 ovo će biti naš prvi broj●

broj2 ovo će biti naš drugi broj●

operacija ovo će biti matematička operacija (zbrajanje ili mnozenje)●

function zbrajanje () { echo $(($broj1+$broj2))}

Ovdje kreiramo funkciju imena 'zbrajanje' koja preko echo naredbe (u drugom redu) zbraja vrijednostivarijabli : broj1 i broj2 i ispisuje rezultat

… isto se ponavlja i kod funkcije mnozenje, s time da ona množi ta dva unešena broja i ispisujerezultat

case $operacija in

Sada pozivamo uvjet case koji provjerava što smo upisali kao treću vrijednost (prve dvije su bilibrojevi) a za treću očekujemo da bude opisna matematička operacija : zbrajanje ili mnozenje

zbrajanje ) zbrajanje ;; dakle ovdje provjeravamo da li je upisano zbrajanje (prva rijeć uovom primjeru) i ako je pozivamo funkciju zbrajanje (druga riječ u ovom primjeru)

mnozenje ) mnozenje ;; ovdje provjeravamo da li je upisano mnozenje i ako je, tada pozivamofunkciju zbrajanje

* ) echo “Niste upisali : zbrajanje ili mnozenje” ako nisu zadovoljena prva dvauvjeta , tada ispisujemo poruku Niste upisali : zbrajanje ili mnozenje

Promijenimo ovlasti i pokrenimo našu skriptu:

chmod +x funkcije1.sh

Pokrenimo skriptu te unesimo brojeve 2 , 4 i operaciju zbrajanje

./funkcije1.shUpisi prvi broj pa drugi broj te operaciju : zbrajanje ili mnozenje:2 4 zbrajanje6

Dobili smo vrijednost 6 , što smo i očekivali

Page 154: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Lokalne varijable

Moguće je određene varijable definirati kao lokalne (pr. unutar naše funkcije) Pogledajmo kakomožemo definirati lokalne varijable uz sličan primjer, prethodnom:

Varijablu definiramo lokalnom pozivanjem ključne riječi:local ispred imena varijable

$ vi funkcije2.sh#!/bin/bash

x=100y=200

zbrajanje(){ local x=$1 local y=$2 echo "Rezultat je :" $(( $x + $y ))}

echo "Pozovimo globalnu varijablu x: $x"echo "Pozovimo globalnu varijablu y: $y"

echo "Pozovimo funkciju za zbrajanje uz varijable koje smo mi unjeli(lokalne varijable unutar funkcije):"zbrajanje $1 $2

Opis:

Na početku smo definirali globalne varijable x i y:

x=100y=200

Nakon toga kreiramo funkciju koja će zbrajati dva broja. Unutar te funkcije smo definirali loklanevarijable, čija vrijednost traje samo unutar ove funkcije :

local x=$1 local y=$2

Podsjetimo se: $1 i $2 su sistemske varijable koje označavaju prvi i drugi argument koji upisujemo (pr.uz pokretanje ove skripte)

Potom ispisujemo rezultat:

echo "Rezultat je :" $(( $x + $y ))

Page 155: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 155/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Izvan naše funkcije ispiujemo globalne varijable:

echo "Pozovimo globalnu varijablu x: $x"echo "Pozovimo globalnu varijablu y: $y"

A na kraju pozivamo našu funkciju , kojoj prosljeđujemo argumente s kojima ćemo pokrenuti našuskriptu ($1 i $2). Dakle vrijednosti $1 i $2 se prosljeđuju unutar naše funkcije koju pozivamo(pokrećemo):

zbrajanje $1 $2

Promijenimo ovlasti:

chmod +x funkcije2.sh

Pokrenimo našu skriptu i dodajmo joj argumente (u našem slučaju brojeve 2 i 4)

./funkcije2.sh 2 4

Pozovimo globalnu varijablu x: 100Pozovimo globalnu varijablu y: 200Pozovimo funkciju za zbrajanje uz varijable koje smo mi unjeli (lokalnevarijable unutar funkcije):Rezultat je : 6

Dobili smo željeni rezultat.

Mrežni sustav

Da bi se upoznali s mrežama, prvo se moramo upoznati s mrežnim protokolima i modelima premakojim su nastali i osnovnim standardima vezanim uz mreže.

OSI model i TCP/IP model

OSI model (Open Systems Interconnection model) je konceptualni slojeviti model mrežnekomunikacije, koji opisuje funkcije i međusobnu komunikaciju između njegovih slojeva.Održava se odstrane ISO organizacije (International Organization for Standardization), pod oznakom : ISO/IEC 7498-1.

Na osnovi OSI modela, razvijen je TCP/IP model mrežne komunikacije.

Naziv TCP/IP potjeće od Transmission Control Protocol (TCP) i Internet Protocol (IP) kao prva dvaprotokola koja su bila razvijena u setu TCP/IP protokola. Današnji TCP/IP set protokola sadrži cijeli nizraznih protokola (zbog toga govorimo o setu ili grupi protokola naziva TCP/IP). Ovaj set protokolačesto se naziva i DoD model zbog toga što je inicijalno razvijan od strane DARPA agencije (DefenseAdvanced Research Projects Agency) unutar Ministarstva obrane Sjedinjenih Američkih Država

Page 156: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

(Department of Defense), krajem 1960. i početkom 1970. godine. Tijekom narednih godina razvijalesu se nove verzije : TCP v1, TCP v2, TCP v3 i IP v3, te TCP/IP v4 koji se koristi i danas (uz IP v6.).

TCP/IP je skup protokola nužan za komunikaciju računala. Današnji internet je baziran na TCP/IPsetu/grupi protokola. On se sastoji od nekoliko dijelova odnosno slojeva od kojih svaki odrađujeodređenu funkcionalnost te predaje na obradu slijedećem sloju.

Na slici je vidljiva usporedba OSI i TCP/IP modela te može poslužiti kao primjer komunikacije TCP/IPprotokola.

Prema slici će se najbolje shvatiti što se događa kod komunikacije dva računala TCP/IP-om:

Upoznajmo se (okvirno) s komunikacijom prema OSI odnosno TCP/IP modelu komunikacije.

Kod komunikacije između dva računala: Source [izvor] → Destination [odredište], dolazi doslijedećeg :

1.Aplikacija (pr. Web browser se spaja na Web poslužitelj ) formira podatke koje želi slati na drugoračunalo (Layer 4, tj po OSI-ju 7,6 i 5 ). i prosljeđuje ju nižem sloju (Layeru)

2.Transportni sloj (TCP) preuzima podatke od gornjeg sloja i dodaje svoj dio (u ovom slučaju Sourcei Destination portove, CRC check [provjeru integriteta podataka], … ) i prosljeđuje ju nižem sloju,

3.Internet sloj (IP) preuzima podatke od gornjeg sloja i dodaje svoj dio (Source i Destination IPadrese,..) i prosljeđuje ju nižem sloju

4.Network Access sloj preuzima podatke od gornjeg sloja i dodaje svoj dio (MAC adrese, …) te šaljepodatke samoj mrežnoj kartici, koja ih pretvara u električne (ili optičke) signale i šalje ih na medij.

Važno je znati da mrežnim medijem prolaze paketi podataka, dogovorene maksimalne veličine. Ako jena početku procesa enkapsulacije (ugnježđivanja) podataka utvrđeno da treba poslati više podataka

Page 157: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 157/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

nego što je maksimalna veličina paketa (pr.~1500 byte = 1.5kB), dolazi do kreiranja više paketa(fragmentacija),od kojih svaki sadrži serijski broj, da bi se ispravno posložili na drugoj strani tesastavili u izvorni oblik.

S druge strane (na drugom računalu, proces je obrnut):

Mrežna kartica prima električne impulse, pretvara ih u slijed digitalnih podataka (0 i 1) , koje preuzimaprvi sloj, obrađuje ih, prosljeđuje drugom sloju,… i tako redom sve do aplikacijskog sloja koji to sveslaže u prvobitni oblik podataka, koji je poslan s prvog računala (Source). Dakle sve se vraća usuprotnmo smjeru (od točke 4. prema točki 1.).

TCP/UDP Portovi

TCP/IP protokol dopušta maksimalno 65535 portova [216] (16 bitni broj). Za svaki TCP/IP protokol jedefiniran i port preko kojega se koristi. Pomoću portova, svako računalo može (u svakom trenutku)paralelno komunicirati s više protokola, jer svaki od njih koristi drugačiji port. Neki od osnovnihportova odnosno protokola koji ih koriste, nabrojani su u tablici.

Broj porta Naziv Opis…20 FTP Data File Transfer Protocol za podatke21 FTP File Transfer Protocol za kontrolu

22 SSH, SFTP i SCP Secure Shell : udaljeni pristup shell-u i Secure File Transfer Protocol teSecure Copy Protocol

23 TELNET Telnet udaljeni pristup25 SMTP Simple Mail Transport Protocol53 DNS Domain Naime Server protokol67 BOOTP/DHCP BOOTP i DHCP Protokoli69 TFTP Trivial FTP Protokol80 HTTP Hyper Text Transfer Protocol123 NTP Network Time Protocol…

Ako vas zanima malo veći popis poznatijih portova pogledajte na Wikipedia članak

Kao što smo spomenuli u transportnom sloju (TCP/IP model sloj [Layer] 3) se osim drugih stvari dodajui portovi i to Source port (izvorni) i Destination port (odredišni), koji definiraju (nad)protokol kojim ćese odvijati komunikacija. (Ovo će vam biti jasnije nakon slijedećih poglavlja). Osim portova bitno je ikojim točno transportnim protokolom se koristi niži protokol. Od transportnih protokola unutar TCP/IPseta nalaze se TCP i UDP protokoli. Oni su zaduženi za prijenos paketa preko mreže.

Page 158: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Transportni protokoli

TCP

TCP je tkzv. “connection-oriented” transportni protokol, protokol koji se brine za stanje veze, kao i zaintegritet podataka. To znači da se kod komunikacije dva računala, otvara konekcija pomoću tkzv.metode “Three-way handshake” i TCP protokol se brine da je svaki segment podataka koji je poslansa računala A na računalo B primljen u ispravnom (nepromijenjenom) obliku. Svaki paket koji je sdruge strane zaprimljen neispravan, zatraži se retransmisija i paket se šalje ponovno, sve dok nijepotpuno ispravan. Također se kod zatvaranja veze koristi dogovaranje oko zatvaranja , slično kao ikod otvaranja konekcije.

U prijenosu podataka kroz medij (kabel, optičko vlakno,zrak/vakuum) može doći i dolazi, do gubitka djela podataka.

Kako se uspostavlja TCP veza:

TCP veza se uspostavlja putem tkzv “Three-way handshake” tj. uspostave veze u tri koraka.

1. Računalo (A) koje uspostavlja vezu šalje SYN poruku (on je klijent) na drugo računalo (drugoračunalo je server) (B). Također klijent postavlja sequence number na slučajnu vrijednost, koja sekoristi dalje.Pr.(HEX):

SEQ= F5 72 B7 12

⇒ sequence number je redni broj svakog paketa koji se šalje, da bi se kasnije na drugoj strani kojaih prima mogli poredati po redosljedu kojim su poslani te obraditi (opisano u poglavlju“Enkapsulacija”).

2.Računalo (B) (server strana) šalje SYN-ACK poruku te postavlja acknowledgment number zajedan broj veći od sequence number broja iz prvog koraka. Računalo B (server strana) postavlja zasequence number ovog paketa isto slučajan broj.Pr.:

SEQ= D8 7F C4 A3

Page 159: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 159/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

ACK= F5 72 B7 13

3.Računalo (A) (klijent strana), šalje ACK poruku nazad na računalo B (server strana). Računalo Apostavlja sequence number kao primljeni acknowledgement number a acknowledgementnumber povećava za 1 u odnosu na primljeni sequence number . Inaće se u daljoj komunikacijiuvijek sa acknowledgement number potvrđuje sequence number i uvećava za 1.

Pr.:

SEQ= F5 72 B7 13

ACK= D8 7F C4 A4

Napomena: Ako gledamo mrežni promet korištenjemprograma “Wireshark”, TCP ACK i SEQ brojevi koji sestandardno prikazuju su tkzv. Relativni tj. Wireshark ihprikazuje na nama razumljiviji način (počevši od '0'). StvarniACK i SEQ brojevi su 32-bitni brojevi, vidljivi uheksadecimalnom dijelu (dolje).

Nakon ovog procesa TCP veza između računala A i B je uspostavljena.

Slika : Uspostavljanje TCP veze:

Page 160: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Nakon uspostavljene TCP veze, kreće promet preko nje. Prvipaket nastavlja s označavanjem SEQ i ACK brojeva, s time dase oni više ne povećavaju za 1, već za veličinu tkzv.“Payload”-a tj. veličinu koliko se podataka prenosi. DakleACK na drugoj strani standardno potvrđuje primljeni SEQ brojte kreira novi, koji je uvećan za taj “Payload” odnosnoveličinu prenesenih podataka.

Kako se zatvara TCP veza:

TCP veza se zatvara putem tkzv “four-way handshake” tj. uspostave veze u četiri koraka,ali mogućesu varijante i u tri koraka ili dva koraka.

Objasniti ćemo standardno zatvaranje u četiri koraka:

1. Kada jedna strana želi zatvoriti (svoju stranu) veze (Računalo A) ona prvo šalje FIN poruku(nećemo ulaziti ponovno u detalje oko sequence number i acknowledgment number jer je sistemisti kao kod otvaranja veze i kao kod bilo koje druge TCP komunikacije).

2. Druga strana (Računalo B) odgovara slanjem poruke ACK. Nakon toga Računalo A čeka da TCPTimeout istekne te zatvara svoju stranu veze. S ovom porukom je zatvoren jedan dio veze : RačunaloA → Računalo B.

Od trenutka kada je primljena poruka ACK za zatvaranje veze, TCP port koji je otvoren za tu vezu, još je otvoren, sve dokne istekne TCP timeout, kada se sve zatvara

3. Sada druga strana (Računalo B) također šalje FIN paket prema drugoj strani (na Računalo A)

4. Druga strana (Računalo A) potvrđuje prekid veze slanjem poruke ACK , koju kada Računalo B primitakođer čeka na TCP timeout te potom zatvara vezu (isto kao točka 2.). Ovim korakom je zatvorena istrana veze : Računalo B → Računalo A i samim time cijela TCP veza.

Slika: zatvaranje TCP veze u četiri koraka:

Page 161: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 161/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Metoda zatvaranja veze u 3 koraka (Three-way handshake)

Ovo je najčešća metoda zatvaranja TCP veze.

1. Računalo A šalje poruku FIN

2. Računalo B odgovara sa porukom FIN ACK

3. Računalo A odgovara sa porukom ACK

Nakon ovog koraka obije strane čekaju da TCP tiemeout istekne te zatvaraju cijelu TCP vezu.

Metoda zatvaranja veze u 2 koraka (Two-way handshake)

Ako oba računala istovremeno pošalju poruku FIN i također nakon toga potvrde drugoj straniistovremeno sa zatvaranjem - porukom ACK.

TCP konekcija može biti i napola otvorena !

Page 162: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Moramo biti svjesni činjenice da je uspostavljena TCP veza uspostavljena zapravo s dvije strane, štose može promatrati kao dvije jednosmjerne veze:

strana A → strana B●

strana B → strana A●

Stoga, moguće je da TCP veza ostane napola otvorena tj. “half-open”,što se dešava kada jedna stranaregularno zatvori vezu a druga ne. Tada, strana koja je zatvorila vezu ne može slati podatke na drugustranu ali druga strana može slati prema njoj, sva dok druga strana ne zatvori svoju stranu veze.

UDP

UDP (User Datagram Protocol) transportni protokol koristi jednostavan ali vrlo brzi sustav za prijenospodataka bez provjere o uspješnom primanju ili integritetu podataka poslanih unutar mrežnih paketa.S druge strane on (UDP) prepušta sve provjere na stranu same aplikacije koja šalje ili prima podatke.Dakle UDP je nepouzdan ali vrlo brz. Želite li pouzdanost a morate ili želite koristiti UDP, sve zaštitnemehanizme morate ugraditi u vašu aplikaciju. Ako ipak želite smo brzinu onda je UDP pravi izbor.

UDP se često koristi kada imamo komunikaciju koja je vremenski osjetljiva a nije nam previše bitno dali će se koji paket usput izgubiti u prijenosu. Primjer ovakve upotrebe je Audio ili Video komunikacija,gdje nam nije bitno ako se izgubi koji dio slike na trenutak ili djelić glasa ali nam je bitno da nemavremenskog kašnjenja. Osim ove primjene, koristi se i kod drugih tipova komunikacije kao što su razniprotokoli za logiranje određenih poruka (spremanje sistemskih poruka sa raznih uređaja na centralnulokaciju), kada nam nije najbitnije ako se jedna mala poruka izgubi i sl. Još jedan primjer su DNS(Domain Name Service) protokol ili NTP (Network Time Protocol) protokol, koji ako ne dobiju odgovor unekom vremenu, poruku će poslati ponovno. Koriste ih i DHCP (Dynamic Host Configuration Protocol),TFTP (Trivial FTP) i mnogi drugi protokoli.

Enkapsulacija

Pogledajmo detaljnije što se dešava kod TCP/IP komunikacije.

Slika prikazuje enkapsulaciju (ugnježđivanje) prema TCP/IP, sa Source računala. Ovdje će vam bitimalo jasniji tok podataka i veza između TCP/IP slojeva.

Page 163: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 163/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Zamislimo slijedeći (pojednostavljen) primjer: Naš program (aplikacija), pr. naš Web preglednik se želispojiti na neku stranicu na koju upisujemo neke podatke (pr. korisničko ime i lozinku).

Sada naš TCP/IP prokol uskače u pomoć.

Aplikacijski sloj uzima podatke iz same aplikacije (u našem slučaju naše korisničko ime i lozinku) teih razdvaja na manje dijelove (ako je potrebno), koji stanu u mrežni paket, u formatu koji je razumljivvišem sloju tj. aplikaciji. Ti naši podaci (ovdje su naše korisničko ime i lozinka koje smo upisali) su naslici prikazani kao [DATA] .

Transportni sloj - transportni sloj (3) preuzima paket podataka od aplikacijskog sloja te dodaje svojdio [Transport Header] – ovdje se dodaju i Source i Destination portovi i paketi označavaju rednimbrojevima te se dodaju i ostale stvari : ovisno da li se za transport koriste TCP ili UDP. Ako je pr. TCPprotokol odabran za transport, izračunava se checksum podata i dodaje se i on ,… Na kraju se svezajedno sa svime iz prethodnog sloja (Aplikacijskog) i novododanih stvari, proslijeđuje slijedećemsloju.Prema OSI modelu ovo je Layer 4

Source port se nasumično odabire (1024 + Random [slučajnibroj]) a Destination port označava protokol za komunikaciju(pogledajte tablicu s portovima).

Page 164: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Internet sloj preuzima paket od transportnog sloja i dodaje svoj dio, koji sadrži i Source IP adresu(pošiljatelja) i destination IP adresu (primatelja) te se dalje sve (što sadrži sve što su dodali prethodnislojevii ovaj sloj), prosljeđuje slijedećem sloju.Prema OSI modelu ovo je Layer 3

Network Access sloj preuzima paket od Internet sloja te dodaje i Source i Destination MAC adrese(dakle MAC adrese mrežne kartice ovog računala i računala na koje se šalje paket [ovisno da li je naistoj mreži - o ovome kasnije]).Tada se kreira novi paket koji sadrži sve preuzeto od prijašnjeg slojaiono što je ovaj sloj dodao i šalje se na mrežnu karticu. Prema OSI modelu ovo je Layer 2

Nadalje se sve pretvara u signale za slanje na mrežni medij (pr. “bakar” ili “optika” tj. električnesignale ili svjetlosne impulse), od strane mrežne kartice.

Ovaj proces se na računalu koje prima podatke, odvija u suprotnom smjeru.Odnosno Web poslužiteljna koji smo se spajali, prima s mrežnog medija signale koji se pretvaraju u podatke koje preuzimaNetwork Access sloj koji provjerava svoj dio i skida ga te prosljeđuje Internet sloju koji provjeravasvoj dio i skida ga i prosljeđuje Transportnom sloju koji provjerava svoj dio: ako je za transport biokorišten TCP, provjerava se integritet (točnost/ispravnost) i ako je sve ok, skida se dio koji je od ovogsloja i proslijeđuje Aplikacijskom sloju uz naznaku broja porta (jer on naznačava aplikacijski protokoli na kraju krajeva aplikaciju). Aplikacijski sloj izvlači podatke i prosljeđuje ih našoj aplikaciji (u ovomslučaju Web poslužitelju).

Ostali pojmovi

MAC adresa (Media Access Control) je jedinstvena adresa, ugrađena u svaku mrežnu karticu, od●

strane proizvođača odnosno u svaki port na switchu (ili bilo kojem mrežnom uređaju). MAC adresa je48 bitna, označava se sa 12 heksadecimalnih brojeva, grupiranih po 2 i obično odvojenih sa : ili -.Prvih 6. hexa brojeva označava proizvođaća a ostalih 6 su redni brojevi.

Na osnovu MAC adrese možemo raspoznati proizvođaća same kartice (Intel, 3Com,Broadcom,…) Pr.Izgled MAC adrese: 00-30-00-3A-FD-6C

IP adresa je jedinstvena adresa, te ju ne može imati niti jedno drugo računalo na mreži. IP adresa●

(Ipv4) je 32bitni binarni broj razlomljen u seriju dekadskih brojeva odvojenih točkom (.). Prvo se cijelibinarni broj razdjeli u 4 grupe od 8 binarnih brojeva, tada se svaka grupa od 8 bitova pretvara udecimalni broj. IPv4 može adresirati 4×8 bitova= 32b (bita) = 232 IP adresa. Osim IPv4 postoji i IPv6.IPv6 se sastoji od 8 heksteta tj (8 x 4 bajta) tj 8 puta po 4 heksadecimalna broja odvojena točkom (.)Dakle IPv6 može adresirati: 8 x 16 bitova = 128b (bita)=2128 IP adresa.

Page 165: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 165/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Network IP adresa (adresa mreže) je adresa koja definira samu mrežu. To je prvaadresa u●

mrežnom segmentu ili prva adresa u subnetu.

Broadcast IP adresa ovisi o tome da li je mreža subnetirana ili nije. Univerzalna broadcast adresa●

je: 255.255.255.255. inače ovisi o kojoj se mreži radi i u pravilu je to zadnja adresa unutar opsegamreže ili zadnja adresa u subnetu. Sve što se pošalje na broadcast adresu, primiti će svi unutar temreže, a u slučaju univerzalnog broadcasta svi na svim mrežama. (Routeri po defaultu nepropuštaju broadcast poruke).

ARP (Adress Resolution Protocol). Pošto u TCP/IP mrežama svaki paket mora sadržavati Source i●

Destination IP i MAC adrese, potrebna je i upotreba ARP protokola. On je zadužen za pronalaženjeMAC adrese od određene IP adrese (pridjeljuje MAC adresu IP adresi). Kada računalo A želi pristupitiračunalu B (kojemu još nije pristupalo), ono provjeri da li zna njegovu MAC adresu (pošto mu jepoznata IP adresa). Ako mu nije poznata njegova MAC adresa, računalo šalje ARP zahtjev te potomkada primi ARP odgovor, pomoću njega saznaje ispravnu MAC adresu od pripadajuće IP adrese. (Višedetalja o ARP protokolu dalje u tekstu).

Topologija mreže

Mrežna topologija definira strukturu same mreže odnosno način međusobnog spajanja svih mrežnihkomponenti ako pričamo o fizičkoj topologiji. Logička topologija daje nam uvid u logičke veze izmeđusvih mrežhih komponenti.

Prema fizičkoj topologiji razlikujemo slijedeće modele:

Sabirnica: (engl. Bus) koristi dijeljenu vezu. Svi su spojeni direktno na dijeljenu vezu.●

Prsten: (engl. Ring) spajaju se svi jedan na drugi (serijski) te zadnji sa prvimšto kreira zatvoreni●

prsten.Zvijeza: (engl. Star) svi se spajaju na jednu centralnu točku (ovako se spaja pomoću HUB-ova ili●

switcheva).Proširena zvijezda: (engl. Extended Star) više zvijezda se spaja u jednu točku (ovako se spaja●

pomoću HUB-ova ili switcheva).Hijerarhijska topologija (ili “Stablo” ) slična je proširenoj zvijezdi ali mora se sastojati od●

minimalno tri (3) sloja .Ukrižana Mreža: (engl. Mesh) koristi se da omogući što veću sigurnost od ispada bilo kojeg dijela●

mreže, ima više puteva do svake točke

Slika prikazuje navedene tipove mrežnih topologija:

Page 166: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Mrežni pojmovi

Mreže u globalu dijelimo na LAN (Local Area Network) i WAN (Wide Area Network) mreže.

LAN - Lokalna mreža je primjerice mreža unutar jedne zgrade – kao što je mreža unutar neke tvrtke.●

WAN - mreža je mreža koja povezuje više LAN mreža između udaljenih lokacija (pr. dvije lokacije●

tvrtke ili vašu tvrku s internetom).

Naravno postoje i neki drugi specifični tipovi mreža (SAN, VPN, …) ali nisu nam za ovaj uvod u mrežebitni.

Bitno je znati da LAN mreže u praksi rade na puno većim brzinama od WAN mreža. Iznimke su velikekorporacije, banke i telekomi koji si mogu priuštiti i WAN mreže brzina koje su inaće u LAN mrežama.

Razlike u brzinama između prosječnog LAN-a i WAN-a koji se danas koriste, mogu biti: LAN: 100Mbps,1000Mbps (1Gbps), 10000Mbps (10Gbps), … WAN: 512Kbps, 1Mbps, 2Mbps, 4Mbps, 8Mbps, 10Mbps,…

Dakle 100 i više puta su veće prosječne brzine u LAN mrežama nego u WAN mrežama. Naravno uiznimnim slučajevima to se može i izjednačiti ali uz ekstremno visoke troškove.

Page 167: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 167/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Brzina mreže

Kod brzina mreža potrebno je razlikovati bandwidth od throughput-a.

Bandwidth

Bandwidth se definira kao količina informacija koje mogu prolaziti određenim mrežnim medijem.Mrežni mediji mogu biti žičani kabeli (koaksijalni [RG*], parični [F/S/U/TP] ), optički kabeli [single/multimode] ili eter (zrak, vakuum)…

Za svaki medij postoje ograničenja bandwidth-a. Uvijek postoje razlike između bandwidtha ithroughputa, i to zbog raznih gubitaka, što u samom mediju (dolazi do slabljenja ili miješanja signala,… ) a što zbog dodataka na “korisne” podatke, koje dodaju određeni mrežni protokoli.

Jedinica za bandwidth je bps (bits per second) [bitova u sekundi]:

Jedinica Oznaka VrijednostBitova u sekundi bps 1bps = Osnovna jedinicaKilobita u sekundi kbps 1kbps=1 000 bpsMegabita u sekundi Mbps 1Mbps=1 000 000 bpsGigabita u sekundi Gbps 1Gbps=1 000 000 000Terabita u sekundi Tbps 1Tbps=1 000 000 000 000

Throughput

Throughput je stvarni izmjereni bandwidth u jedinici vremena. Radi se o tome da uz korisneinformacije mrežom prolaze i kontrolne informacije, te ukupni promet nisu samo korisni podaci.

Ako govorimo o slučajevima kada mjerimo throughput kopiranja recimo nekih datoteka prekomreže, sa dva različita mrežna protokola za dijeljenje datoteka preko mreže, uočiti ćemo razlike ubrzinama i zbog činjenice da određeni mrežni protokoli dodaju više ili manje kontrolnih i drugihpodataka u svaki paket (uz razlike u dizajnu i sl.).

Jedinica za throughput je Bps (Byte per second) [Bajta u sekundi] (uočite da je slovo B veliko).Maksimalnu propusnost mreže (throughput) možemo izračunati: tako da veličinu određene datoteke(u bitovima) podijelimo sa bandwidthom.

Za Ethernet mreže možemo općenito koristiti tablicu:

Bandwidth Maksimalni teoretski Throughput1 Mbps 128 kBps10 Mbps 1.28 MBps100 Mbps 12.8 MBps1 000 Mbps (1Gbps) 128 MBps10 000 Mbps (10 Gbps) 1280 MBps

Page 168: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Duplex

Duplex je uz čistu brzinu mreže (10Mbps/100Mbps/1000Mbps/…) drugi bitan parametar vezan uzsamu brzinu (ovo možda zvuči malo čudno). O čemu se radi ?.

Half Duplex

U starim mrežama (10 Mbps i 100 Mbps) koje su dijelile jedan medij (iz vremena korištenja HUB-ova),u svakom trenutku je bilo moguće ili primati ili slati podatke preko mreže (sjetimo se da je to jedandjeljeni medij [kabel]). Zbog problema ako je netko u takvoj mreži pokušao slati podatke istovremenos nekim drugim je i uveden CSMA/CD protokol (pogledajte CSMA/CD poglavlje) koji je to riješio tako daje pojednostavljeno natjerao sve koji su spojeni na mrežu da u jednom djeliću sekunde samo jedanmože slati podatke a ostali samo slušati. Ovakav način komunikacija nazivamo Half Duplex. Bitnoje razumjeti da je Half Duplex način komunikacije u samo jednom smjeru : ili se šalje ili se primapodatke, nikako istovremeno.

Full Duplex

Razvojem mreža i prelaskom s HUB-ova na Switcheve više nije bilo potrebe za Half Duplexkomunikacijom (iako neki uređaji i danas traže takav način komunikacije). Dakle upotrebom switchevakomunikacija više ne teće kroz jedan dijeljeni medij između svih koji su spojeni na mrežu već jepraktično svaka veza između računala (ili nekog drugo uređaja na mreži) i switcha jedini dijeljenimedij pa je prema tome moguće istovremeno i primati i slati podatke. Naime prva komponentaizmeđu vas i susjednog računala je upravo switch, prema kojemu svako računalo može imatidvosmjernu komunikaciju i na fizičkom nivou (Layer 1).Pošto switchevi rade na sloju 2 (Layer 2),mrežne paketa obrađuje switch i preklapa ih iz jednog računala, preko sebe do drugog računala iobrnuto, za svaki paket posebno tako da je obostrana komunikacija zadržana. Ovu mogućnostdvostrane komunikacije (i primanje i slanje paketa mrežom u isto vrijeme) nazivamo Full Duplex.

Postoji još jedna zanimljivost Full Duplex načina rada a to je kumulativna brzina mreže.Ako recimonaša brzina mreže iznosi 1 000 Mbps (1 Gbps) to znači da tom brzinom možemo istovremeno i primatii slati podatke što opet znaći da maksimalna brzina onda iznosi 2 000 Mbps (1 Gbps), što nekiproizvođaći i iznose u karaktaeristikama mrežnih uređaja ili komponenti :

“Standardna” Brzina Full Duplex Brzina10 Mbps 20 Mbps100 Mbps 200 Mbps1000 Mbps 2000 Mbps

“Ethernet” standard i njegove podvarijante možete vidjeti na : IEEE 802.3

Auto Negotiation

Kako su Ethernet mreže rasle s brzinom od 10 Mbps prema 100 Mbps i 1000 Mbps (1Gbps) ili dalje sa10 000 Mbps (10 Gbps) morala je postojati mogućnost korištenja smanjenja brzina odnosnokompatibilnosti unatrag. Dakle da se sa 1 000 Mbps (1 Gbps) mrežnom karticom možemo spojiti namrežu koja rad recimo na 100 Mbps.

Page 169: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 169/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Osim fizičke kompatibilnosti unazad te ručnog konfiguriranja brzine i Duplex moda, uveden je mrežniprotokol imena : Auto Negotiation, koji omogućava da dvije strane mreže (pr. Računalo ←→Switch) dogovore :

Brzinu rada : 10 Mbps, 100 Mbps, 1 000 Mbps (1Gbps) ili 10 000 Mbps (10 Gbps)●

Duplex način rada : od Half do Full●

I brzina i duplex način rada se uvijek dogovaraju od najveće brzine prema najmanjoj brzini i isto takood Full Duplex do Half Duplex prema strani koja ima “najlošije” parametre veze.

Preporuka je da se Auto Negotiation ne koristi zameđusobno spajanje Switcheva, Routera, Poslužitelja ilidruge mrežne opreme.

Zbog čega ova preporuka ?

Naime razni proizvođaći mrežne opreme: od mrežnih kartica, preko switcheva, routera i drugihmrežnih komponenti često se ne drže standarda ili ih ne implementiraju na najbolji način te sedogađa da se dvije strane koje dogovaraju brzinu i duplex, krivo dogovore te tada počinju problemi iusporavanja u mreži.

Primjeri

Najčešći vidljivi problem kod krivo dogovorene brzine je veliko gubljenje paketa u oba smijera(Upload/Download) unutar LAN mreže.

Najčešći vidljivi problem krivo dogovorenog duplex moda je velika nesimetrija tj.razlika u brzinamaovisno o smjeru podataka (Upload/Download) unutar LAN mreže.

Zbog čega ponavljam “unutar LAN mreže”, zbog toga jer ovo nije mjerilo kod danas najčešće WANtahnologije za “Izlaz na internet” tj. ADSL-a, koji je i kako ime kaže (Asymmetric Digital SubscriberLine) - Asimetričan, dakle projektiran da u jednom smjeru ima veliku brzinu (Download) a u drugomvrlo malu (Upload).

CSMA/CD i Nasljeđe prošlosti

CSMA/CD i Kolizijska domena (Carrier Sense Multiple Access With Collision Detection).

Prije vremena switcheva, koristili su se uređaji zvani HUB-ovi.

Računala i druga mrežna oprema se na njih spajala na isti način kao na switcheve (prema topologiji :zvijezda [star]) – sva računala i oprema, svaki na svoj port na HUB-u.

Page 170: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Na HUB-ovima se dijelila zajednička veza jer je on praktično bio samo pojačalo električnog signala.Veza je prema tome bila Half Duplex (samo primanje ili slanje na mrežu u jednom trenutku). U praksise stalno dešavalo da su dva ili više računala u jednom djeliću vremena krenula u slanje podataka. Tuje uskakao CSMA/CD koji je tada detektirao ovaj slučaj koji se zove kolizija dakle “Collision Detection”mehanizam, koji radi tako da tada svaki od pošiljatelja mora sačekati određeni nasumični broj odnekoliko milisekundi te probati slati podatke ponovno i tako iz početka, svaki puta kada se detektirakolizija tj. istovremeno slanje podataka na mrežu od strane 2 ili više računala.

Upotrebom switcheva više nema kolizije ako se koristi Full Duplex mod rada portova (interface-a).Samim time i kolizijska domena više ne postoji odnosno u najgorem slučaju je moguća na nivoujednog porta na switchu i to samo ako je on konfiguriran u Half Duplex modu rada.

Važno je znati da je zbog kompatibilnosti unatrag i dalje ostao Half Duplex mod rada svakog portana koji treba paziti.Problem se može pojaviti jer se svaki port na switchu i krajnje računalo ili mrežnaoprema mogu krivo “dogovoriti” te uspostaviti Half Duplex umjesto Full Duplex moda - u slučajuupotrebe Auto Negotiation protokola.

Full duplex je mod rada u kojemu je moguće istovremeno slanje i primanje podataka i to samo ako jetako konfigurirano na strani switcha i druge strane (računalo, drugi switch, poslužitelj , ….). Dakleobije strane moraju biti jednako konfigurirane !.

Kako radi mreža (Layer2)

U današnjim mrežam za međusobno umrežavanja/spajanje računala, poslužitelja i ostale mrežneopreme koriste se switchevi koji standardno rade na Layer 2 (dakle barataju sa MAC adresama).

Spajanjem bilo kojeg računala ili uređaja na neki port na switchu, sam switch prvo mora saznatinjegovu MAC adresu te ju spremiti u svoju internu tablicu koja sadrži par :

Source MAC adresa <–-> port (interface) na switchu

To je i sva logika koja je potrebna za uspješno preklapanje (switching), Naime kada spojimo računalaA i B na switch, i to primjerice:

Računalo A (MAC 00:01:02:A1:11:11) – port (interface) 1

Računalo B (MAC 00:01:02:B2:22:22) – port (interface) 2

Switch si nakon nekoliko trenutaka izgradi gore navedenu tablicu koju primjenjuje na svaki paket kojimu dođe.

Prisjetimo se TCP/IP komunikacije :Svaki paket mora imati (uz ostale podatke) :

Source i Destination MAC adrese i●

Source i Destination IP adrese.●

Pošto govorimo o standardnom switchu, koji je Layer 2 uređaj, on gleda svaki paket i to samo dio saSource MAC adresom i destination MAC adresom i na osnovu njih odrađuje preklapanje odnosno slanje

Page 171: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 171/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

mrežnih paketa sa jednog svog porta na drugi.

(Layer 2 po OSI tj Layer 1 po TCP/IP modelu ):

Računalo A šalje paket na računalo B :

Pojednostavljeno to radi ovako:

1. Switch pogleda Source MAC (to je MAC od Računala A) i vidi da ga već ima u tablici (ako nemazapamti ga sada, na portu na koji je spojen) te pogleda i destination MAC adresu (to je MAC odRačunala B)

2. Switch provjerava svoju tablicu i gleda da li ima MAC adresu od računala B, ako ima gleda na kojemje portu (interface-u) i paket šalje na taj port (interface)

Ako nema MAC adresu od računala B, pokuša ju saznati slanjem ARP poruke te ju zapamti i izgradi sitablicu.

Upoznajmo se detaljnije s ARP protokolomARP protokol u komunikaciji koristi dva scenarija:

Standardni scenarij1. Šalje se ARP Request (Odnosno ARP upit - tko ima IP adresu x.y.z.w) [Opcode 1 - Request][Broadcast poruka]2. Šalje se ARP Reply (Odnosno ARP odgovor - za IP adresu x.y.z.w koristi se MAC adresaAA:BB:CC:DD:EE:FF) [Opcode 2 - Reply] [Unicast poruka]Važno je znati da svaki uređaj na mreži može poslati ARP request (zahtjev) koji se šalje na BroadcastMAC adresu 'FF:FF:FF:FF:FF:FF' i koju primaju sva računala unutar određene LAN mreže (odnosnounutar Broadcast domene). Isto tako bilo tko može odgovoriti na ovaj zahtjev odnosno upit i poslatiARP Response (odgovor), koji je “Unicast” poruka, odnosno odgovor ide na MAC adresu pošiljateljaARP Request-a.

Scenarij za osvježavanje ARP tablice (tkzv “Gratuitous ARP”)

U ovom slučaju nema potrebe za dva koraka kao u prethodnom slučaju, već bilo koji uređaj može slatiARP Reply [Opcode 2 - Reply]. Razlika u odnosu na “normalan” ARP Reply je u tome što se ovaj“Reply” šalje na Broadcast MAC adresu tj. 'FF:FF:FF:FF:FF:FF'.

Primjer je vidljv na slici:

Ethernet II, Src: 02:02:02:02:02:02, Dst: ff:ff:ff:ff:ff:ff Destination: ff:ff:ff:ff:ff:ff (Broadcast) Source: 02:02:02:02:02:02 (02:02:02:02:02:02) Type: ARP (0x0806) Trailer: 000000000000000000000000000000000000Address Resolution Protocol (request/gratuitous ARP) Hardware type: Ethernet (0x0001) Protocol type: IP (0x0800) Hardware size: 6

Page 172: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Protocol size: 4 Opcode: request (0x0001) Sender MAC address: 02:02:02:02:02:02 (02:02:02:02:02:02) Sender IP address: 192.168.1.1 (192.168.1.1) Target MAC address: ff:ff:ff:ff:ff:ff (Broadcast) Target IP address: 192.168.1.1 (192.168.1.1)0000 ff ff ff ff ff ff 02 02 02 02 02 02 08 06 00 01 ................0010 08 00 06 04 00 01 02 02 02 02 02 02 c0 a8 01 01 ................0020 ff ff ff ff ff ff c0 a8 01 01 00 00 00 00 00 00 ................0030 00 00 00 00 00 00 00 00 00 00 00 00 ............

Ovdje vidimo da uređaj sa MAC adresom '02:02:02:02:02:02' šalje Broadcast poruku svima('FF:FF:FF:FF:FF:FF') da od sada IP adresa ('192.168.1.1') pripada MAC adresi ('02:02:02:02:02:02'). Naovaj način je sam sebe proglasio nadležnim za IP adresu ('192.168.1.1').

Ovo rade mnogi uređaji koji koriste razne Virtualne IP adrese koje se dijele s drugoim uređajima (pr.za HSRP, VRRP GLBP i slične protokole te za protokole unutar raznih clustera), da bi se najavilapromjena uređaja koji je postao aktivan vlasnik virtualne IP adrese.

Za detalje pogledajte način funkcioniranja protokola HSRP ili VRRP.

Vratimo se na switcheve i Layer 2 komunikaciju

Ponovimo :

1.Switch pogleda Source MAC (to je MAC od Računala A) i vidi da ga već ima u tablici (ako nemazapamti ga sada, na portu na koji je spojen) te pogleda i destination MAC adresu (to je MAC odRačunala B)

2.Switch provjerava svoju tablicu i gleda da li ima MAC adresu od računala B, ako ima gleda na kojemje portu (interface-u) i paket šalje na taj port (interface)U slučaju da nema MAC adresu od računala B, pokuša ju saznati slanjem ARP poruke te ju zapamti iizgradi si novu tablicu (tj. osvježi ju).

Ova MAC tablica na switch-u se zove i CAM tablica (Content Addressable Memory) tablica.

Sada kada switch ima u CAM tablici i Source i Destination MAC adrese od ovog (i svakog) paketa odRačunala A on paket (jedan po jedan) prebaci/preklopi na interface na kojem se nalazi spojenoračunalo B. Ovo se ponavlja za svaki paket i za sve komunikacije.

Sumarizirajmo mogućnosti Layer 2 switchinga

Bridge-ing brzinom hardvera “Hardware based bridging” tj “Wire Speed performance”●

Kolizijska domena je na nivou porta , odnosno upotrebom Full Duplex moda ne postoji●

Nema mrežnog prometa između VLAN-ova,●

Broadcast domena se proteže na sve portove (interface-e) i sve međusobno spojene Layer 2●

switcheve

Page 173: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 173/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Bacimo pogled na klasične Routere (usmjerivače), koji rade na Layer 3 i 4

Broadcast domena ja unutar jednog porta (interface-a)●

Layer 3 procesiranje je od strane CPU-a i samim time je više kašnjenje (latency) od Layer 2●

switchinga :(Routeri s mrežnim paketima rade u miliskundama , switchevi i mikrosekundama [1.000puta brže])Visoka cijena prema broju portova (interface-a)●

Što su Multilayer switchevi ?

Osim Standardnih Layer 2 switcheva, postoje i tkzv. Multilayer switchevi, odnosno switchevi koji radena:

Layer 2 (switching)●

Layer3 (routing/switching) i●

Layer 4 (routing/switchinga) i to uz vrlo nisku latenciju koja je oko 1.000 puta manja od Routera.●

Dakle većinu operacija sa mrežnim paketima Multilayer switch odrađuje oko 1.000 puta brže odklasičnih Routera (usmjerivača).

Možemo reći da je Multilayer switch spoj “klasičnog” Layer 2 switcha i Routera koji radi na “WireSpeed”-u unutar jedne hardverske platforme.

Sve operacije koje on obavlja, obavlja i klasični Layer 2 Switch i standardni Router (usmjerivač) ali svena hardverskoj brzini unutar milisekundi. Njegovom upotrebom možemo povećati performanse cijelemreže,ali uz pravilan dizajn mreže i pravilno dimenzioniranje.

Što se dešava na kojem sloju i kojom brzinom (za switcheve koji imaju “ASIC”):

Layer 2 : sve se odrađuje na osnovi MAC adresa, brzinom hardvera (tkzv. “Wire Speed”)●

Layer 3 : sve operacije preklapanja tj, ovdje govorimo o routing-u (usmjeravanju) se odrađuju na●

osnovi IP adresa , sve se odrađuje brzinom hardvera (za razliku od Routera-a kod kojih CPU sveodrađuje)

Layer 4 : Dodaje se mogućnost rada na Transportnom sloju (TCP/UDP portovi) – možemo reći da je●

ovaj sloj “Application aware” – svjestan aplikacija.

O čemu se radi (ASIC) ?

ASIC (Application Specific Integrated Circuit) je IC (“chip”) koji se ovisno o izvedbi i modelu switchapraktično nalazi na svakom portu (interface-u) i to kod primjerice opreme od proizvođaća poput:Cisco, Juniper i još samo par drugih tvrtki. ASIC je u mogućnosti unutar granica milisekundi:

primiti,●

obraditi i●

proslijediti svaki mrežni paket.●

Veliko ubrzanje u radu ASIC-a, uz upotrebu vrlo brze SRAM memorije, donosi i upotreba slijedećihkomponenti integriranih u sam ASIC (za Cisco Switcheve 3750 ili jače):

Page 174: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

CAM memorije (tablice) za Layer 2 funkcionalnosti●

TCAM memorije (tablice) za Layer 3 funkcionalnosti,●

Zbog gore navedenih karakteristika, standardno ASIC (Cisco 3750 ili jači modeli) omogućava obraduslijedećih funkcija, hardverskom brzinom :

Traffic forwarding (obrada i prosljeđivanje paketa)●

QoS (Quality of Service)●

ACL lookup (Access Liste)●

Route Processing (Obrada Routing funkcionalnosti)●

STP (Spanning Tree protokol)●

Slika prikazuje logičku shemu Cisco 3750 Multilayer (Layer: 2,3 i 4) switcha:

Broadcast domena

Razni protokoli za svoj rad tj. u komunikaciji koriste Broadcast način komunikacije koji radi tako dase poruke šalju na specijalnu Broadcast adresu koju primaju svi uređaji (računala, poslužitelji i dr.)unutar određene mreže. Problem je u tome što ovakav način komunikacije zagušuje mrežu.

Hub-ovi i switchevi propuštaju broadcast domenu a Routeri standardno Ne propuštaju. Dakle akoimamo potrebu ograničiti Broadcast domenu, mreža mora biti razdvojena na segmente koji su spojenipreko Routera ili drugih Layer 3 uređaja (pr. Multilayer switcheva).

Page 175: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 175/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

IP adrese

Nakon što smo nešto naučili o osnovama mreža, upoznajmo se s njima malo detaljnije. U daljnjemtekstu, pričati ćemo samo o IPv4 protokolu.

Kako izgledaj jedna IP (IPv4) adresa u dekadskom i binarnom sustavu:

Uzeti ćemo za primjer IP adresu : 172.17.100.18 , koja binarno izgleda ovako :10101100.00010001.01100100.00010010

Pogledajmo to u tablici, da bude malo jasnije:

Dekadski 172 17 100 18Binarno 10101100 00010001 01100100 00010010Binarno broj bitova 8 8 8 8

Vidljivo je da je IP adresa podjeljena u 4 segmenta od 8 bitova, odvojenih s točkom (.)

Klase IP adresa

Kada se IP adresa dodjeljuje računalu, neki od bitova s lijeve strane prezentiraju mrežu.

Broj bitova koji će prezentirati mrežu ovisi o klasi mreže.

Dakle IP adrese su podjeljene u točno definirane klase, od kojih svaka ima svoju (preporučenu)namjenu:

Klasa IP adresa Opseg (prvi oktet) NamjenaKlasa A 0.0.0.0. …do… 127.255.255.255 Za ekstremno velike mreže

127. Rezervirano za loopback (lokalno računalo isl.)

Klasa B 128.0.0.0 …do… 191.255.255.255 Za srednje do velikih mrežaKlasa C 192.0.0.0 …do… 223.255.255.255 Manje mrežeKlasa D 224.0.0.0 …do… 239.255.255.255 Multicast adreseKlasa E 240.0.0.0 …do… 255.255.255.255 Rezervirana od IETF za istraživanje

Primjerice sve IP adrese koje počinju od 128.0.0.0 pa sve sve do 191.255.255.255 su adrese koje suunutar klase B.Osim navedenih klasa, u novije vrijeme zatraženo je da se unutar klasa A,B i C rezerviraju određenidijelovi mreža za privatne mreže (engl. Private Networks). prema RFC1918 :

Klasa adresa Opseg Netmask Max broj IP adresaA 10.0.0.0 …do… 10.255.255.255 255.0.0.0 16.777.216B 172.16.0.0 …do… 172.31.255.255 255.240.0.0 1.048.576

Page 176: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

C 192.168.0.0 …do… 192.168.255.255 255.255.0.0 65.536

IP adrese unutar ovih okvira se smatraju privatnim IP adresama te se ne koriste kao javne IP adrese(engl. Public Address).

Mreže

Korištenjem kombinacije IP adrese i Netmask adrese definiran je svaki mrežni element(Računalo,poslužitelj ,….)

Tako i svaka mreža ima svoju:

IP adresu (adresu mreže)●

opseg (range) IP adresa za upotrebu●

Broadcast IP adresu●

Netmask●

To ćemo objasniti na primjeru.

Uzmimo jednu mrežu B klase:

Unutar velike mreže B klase odabrati ćemo ćemo dvije mreže:

Mreža A: 198.150.11.*, koja se označava sa 198.150.11.0Mreža B: 198.150.12.*, koja se označava sa 198.150.12.0

Pogledajmo što te mreže sadrže:

Adresa mreže

(Network Address)Opseg adresa za upotrebu Broadcast adresa za (ovu) mrežu

198.150.11.0 198.150.11.1 …do… 198.150.11.254 198.150.11.255198.150.12.0 198.150.12.1 …do… 198.150.12.254 198.150.12.255

Dakle mreža A , ima IP adresu 198.150.11.0.

Unutar te mreže svim računalima,poslužiteljima i ostalim uređajima kojima ćemo dodjeliti neku IPadresu, IP adresu možemo dodjeliti iz opsega IP adresa od: 198.150.11.1 sve do 198.150.11.254. a nakraju našeg opsega IP adresa se nalazi broadcast IP adresa (koja je rezervirana i nju ne možemokoristiti) , u ovom slučaju to je adresa : 198.150.11.255.

Isto pravilo vrijedi i za mrežu B (i druge mreže).

Zamisliti ćemo naše dvije mreže s računalima , spojene na slijedeći način:

Page 177: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 177/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Mreža A je na jednoj strani a mreža B na drugoj te su spojene preko Routera, preko kojeg obije mrežeimaju izlaz na internet.

U slučaju da komunikacija teće samo između računala u mreži A isto kao i u slučavima kadakomunikacija teće samo između računala u mreži B, računala normalno komuniciraju preko TCP/IPseta protokola i to direktno :

Prvo računalo šalje promet na drugo i obratno [ pošto uz polazišnu i odredišnu MAC adresu (Source i●

Destination MAC) znaju svoju IP adresu i IP adresu računala s kojim komuniciraju ]

Ali kada je potrebno da računala iz mreže A komuniciraju s računalima iz mreže B , neke osnovnestvari moraju biti zadovoljene:

Naravno Uz IP adresu mora biti definiran i Netmask (o tome u slijedećem poglavlju)●

Mora biti definiran i Default Gateway tj. uređaj koji spaja našu mrežu s drugim mrežama●

Što se dalje dešava, vidjeti ćemo kada naučimo još nekoliko pojmova !.

Netmask

Netmask je 32 bitni broj (232) koji identificira svaki uređaj na mreži (engl. Host).Maska mreže(Netmask) govori nam na koji način će IP adresa biti interpretirana tj. kojoj mreži IP adresa pripada.Zbog podjele mreža na klase te potrebe podjela mreža na podmreže (engl. Subnet), uz IP adresu semora koristiti i maska mreže (engl. Netmask)

Page 178: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Na slici je vidljiva podjela na 4 okteta od kojih svaki ima 8 bitova (što će biti jasnije iz druge slike).Bitovi s lijeve strane označavaju mrežu (Network) a s desne strane identificiraju računalo (Host) namreži.

Pogledajmo detaljniju tablicu za određivanje Netmaska.

Donja tablica nam govori koliko bitova koristimo s lijeve strane za identificiranje same mreže a kolikonam ostaje za hostove (računala).

Netmask se određuje tako da prvo moramo saznati kojoj klasi pripada naša IP adresa.

Network dioPopunimo sve jedinice s lijeve strane, dok ne dođemo do naše mreže (pr. Klasa C je 255.255.255.0 tjprva tri okteta su sve jedinice).

Pr. za našu IP adresa 198.150.11.1 možemo reći slijedeće :

Ona je iz klase C (spada u opseg od : 192.0.0.0 do 223.255.255.255)●

Prema tablici gore za C klasu mreže vidimo da je host dio u 4-tom oktetu: dakle 198.150.11.0 je●

mreža a ćetvrti (zadnji) oktet koji je nula je za računala - (što smo već prije zaključili a sada znamo izašto)Njen Netmask, će prema tome biti : 255.255.255.0 → Pogledajte mrežni dio na tablici gore pa●

pogledajte detaljnu tablicu dolje (za 255.255.255.0)

Dakle popunili smo sve jedinice binarno od lijeva na desno:11111111.11111111.11111111.00000000 i dobili dekadski : 255.255.255.0.Ovaj dio sa jedinicama od lijevo na desno definira mrežu.

Host dioNule na kraju,tj. prebrojavanjem 0 od desno na lijevo (dok ne dođemo do jedinica) nam je naš Host dio.

S navedenim netmaskom za naš slučaj vidimo da je cijeli zadnji oktet (8 puta po 0 tj. 28=256)slobodan za računala : to je 256 adresa (0 do 255 uključujući nulu).

Page 179: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 179/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Dakle : 11111111.11111111.11111111.00000000 (sada gledamo nule za host dio)Pogledajmo to ovako :255.255.255.0 je mrežni dio (to je netmask) a dio 0 (sve nule u našem slučaju) je dio za računala.

Ne zaboravimo da u svakoj mreži postoje i dvije dodatne IP adrese :

Prva moguća IP adresa je rezervirana za mrežu (network adresa)●

Zadnja moguća IP adresa je rezervirana za Broadcast IP adresu●

Nama zbog navedenog u svakoj mreži ostaje ukupan broj IP adresa umanjen za ove dvije IP adrese.

U našem slučaju 256 - 2 = 254 upotrebljive adrese.

Provjerimo u tablici dolje za netmask 255.255.255.0

CIDR notacija koristi se za skraćeno označavanje Netmaska, a označava se tako da prebrojimojedinice s lijeve strane. Dakle Netmask 255.255.255.0 ima 24 jedinice s lijeve strane pa je CIDRoznaka /24

Page 180: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Podmreže (Subnets)

Podmreže (engl. Subnets) se koriste za segmentiranje IP adresa (unutar klasa A,B i C), na nivoupojedine mreže na manje dijelove.

Page 181: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 181/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Subnetiranjem razbijamo određenu mrežu na podmreže, koje se u potpunosti ponašaju kao običnemreže, dakle imaju:

IP adresu mreže●

Opseg IP adresa za upotrebu●

Broadcast IP adresu●

Subnetirati mrežu na podmreže je moguće uz pomoć subnet maske tj Netmask-a.

Subnetirana IP adresa se sastoji od mrežnog dijela te subnet i host dijela IP adrese. Pošto se kodsvake TCP/IP konekcije uz IP adresu provjerava i Netmask, svako računalo (mrežna oprema) naosnovu Netmaska prepoznaje da li je riječ o subnetiranju ili nije odnosno kojoj mreži pripada određenipar IP adresa+Netmask.

Kako prepoznati da li je mreža subnetirana :U slučajevima kada se držimo Netmask-a definiranog prema klasama mreža, za određenu IP adresu,tada mreža nije subnetirana.

Podsjetimo se koje su standardne vrijednosti Netmaska, prema klasama mreža, za mreže koje nisusubnetirane:

Klasa mreže NetmaskA 255.0.0.0B 255.255.0.0C 255.255.255.0

Kako mrežni uređaji znaju kojoj mreži pripada određena IP adresa (i dali je ta mrežasubnetirana) ?

Za svaki par IP adresa i Netmask se prvo radi logička AND (hrv. logička operacija I) operacija te sedobija IP adresa mreže kojoj pripada ta IP adresa. Na osnovi IP adrese mreže jasno je gdje će sesvaki mrežni paket koji ima tu IP/Netmask kombinaciju i proslijediti od strane Layer 3 uređaja (Routerili Multilayer switch).

Podsjetimo se AND logičke operacije :

Ulaz A Ulaz B Rezultat0 0 00 1 01 0 01 1 1

Uzmimo slijedeću IP adresu :

Dekadski 172 17 100 18Binarno 10101100 00010001 01100100 00010010

i njenu pripadajući Netmask adresu:

Page 182: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Dekadski 255 255 255 0Binarno 11111111 11111111 11111111 00000000

Na osnovi IP adrese se radi logička AND operacija sa Netmaskom:

IP adresa 10101100 00010001 01100100 00010010Netmask 11111111 11111111 11111111 00000000Rezultat AND operacije - binarno 10101100 00010001 01100100 00000000Rezultat AND operacije - dekadski 172 17 100 0

Dobiil smo kao rezultat : 172.17.100.0 , dakle ovo je IP adresa mreže (koja nije subnetirana jerpripada klasi C sa standardnim Netmaskom). Podsjetimo se da je ova IP adresa ujedno i nulta IPadresa unutar ove mreže (kao i za druge mreže). Rekli smo da je IP adresa mreže nulta (odnosno prvaIP adresa koju ne smijemo i ne možemo koristiti), te da nakon nje slijedi niz upotrebljivih IP adresa.

Važno za znati je da se kod prolaska mrežnih paketa mrežom, za svaki par IP/Netmask unutar svakogpaketa na mreži, u pozadini prvo odradi AND-ing jer se jedino na osnovi rezultata logičke ANDoperacije utvrđuje gdje određeni mrežni paket treba ići. Ovaj posao odrađuju Layer 3 uređaji (Routeriili Multilayer switchevi). Dakle oni poznaju mrežnu topologiju te znaju gdje im je spojena koja mreža tekada saznaju na koju mrežu (prema izračunatoj IP adresi mreže) poslati paket, u tom smijeru ga iproslijeđuju.

Sada znamo IP adresu mreže te nam još nedostaje i zadnja IP adresa unutar ove mreže (ili subneta).

Ovo se radi u dva koraka:

1.Izračun inverzne maske

Radi se logička operacija XOR sa netmaskom koja ima sve 1-ice (255.255.255.255) i sa našimNetmaskom (u našem slučaju : 255.255.255.0)

Podsjetimo se XOR logičke operacije :

Ulaz A Ulaz B Rezultat0 0 00 1 11 0 11 1 0

Netmask sa svim 1-icama 11111111 11111111 11111111 11111111Naš Netmask 11111111 11111111 11111111 00000000Rezultat XOR operacije 00000000 00000000 00000000 11111111

Rezultat je dekadski : 0.0.0.255

2.Konačni rezultat

Da bi dobili zadnju IP adresu unutar naše mreže a to je Broadcast IP adresa, radimo logičku operaciujuOR (hrv. ILI) od našeg rezultata XOR operacije (0.0.0.255) i naše IP adrese mreže koju smo tako]eriyra;unali (172.17.100.0):

Page 183: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 183/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Podsjetimo se OR logičke operacije :

Ulaz A Ulaz B Rezultat0 0 00 1 11 0 11 1 1

Rezultat XOR operacije 00000000 00000000 00000000 11111111IP adresa naše mreže - binarno 10101100 00010001 01100100 00000000Rezultat OR operacije - Broadcast IP adresa 10101100 00010001 01100100 11111111

Dekadski rezultat je 172.17.100.255 - ovo je Broadcast IP adresa naše mreže (tj. zadnja IP adresa u tojmreži).

Sada imamo sve podatke za mrežu, koji su nam potrebni :

IP adresa: 172.17.100.10 sa pripadajućim Netmaskom : 255.255.255.0 , nalazi se u mreži:172.17.100.0 .

Broadcast IP adresa (i samim time zadnja IP adresa u mreži) te mreže je : 172.17.100.255

Upotrebljive IP adrese su od : 172.17.100.1 …do… 172.17.100.254

Da bi odlučili kako subnetirati mrežu, od strane Administratora potrebno je procijeniti :

Koliko subneta želimo unutar pojedine mreže,●

Koliko hostova (računala) želimo unutar svakog subneta.●

Potom se izračunava subnet koji nam odgovara.

Kada smo odredili subnet, potrebno je za svaki subnet zapisati :

Adresu mreže subneta●

Broadcast adresu subneta●

Opseg iskoristivih IP adresa unutar subneta●

Kako se radi subnetiranje ?

Kada smo pričali o masci mreže odnosno Netmasku rekli smo da postoji dio koji je rezerviran za mrežui dio za Hostove. Kod upotrebe standardnih netmaska tu je kraj priće ali kod subnetiranja mi od Hostdijela moramo posuditi lijevi dio za proširenje postojećeg netmaska tako da dobivamo lsijedeće

Page 184: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

(slika):

Mi zapravo od host dijela posuđujemo bitove s lijeve strane i popunjavamo ih isto s lijeva na desnokao što popunjavamo kod Netmaska s time da se dodani bitovi nadodaju na postojeći netmask.

Pr. Netmask : 255.255.255.0

Netmask dekadski Netmask binarno255.255.255.0 11111111 11111111 11111111 00000000

Uvom primjeru onaj desni oktet koji ima sve jedinice je Host dio. Taj dio moramo podjeliti tako dadodavanjem svakog bita s lijevo na desno praktično dijelimo mrežu na dva (2) dijela a ostatak premadesno je upotrebljiv za upotrebu (opseg IP adresa unutar subneta)

Ako želimo podjeliit ovu mrežu na dva dijela dodati ćemo jedan bit s lijeve strane, pa ćemo dobitislijedeći Netmask: (Pogledajte taj bit koji smo dodali u zadnji oktet i ostale nule koje su slobodne zaupotrebu)

Netmask dekadski Netmask binarno255.255.255.128 11111111 11111111 11111111 10000000

Pogledajmo tablicu za podmreže za klasu A mreža:

Netmask CIDRnotacija

Broj mogućihpodmreža(subneta)

Broj iskoristivih IPadresa (Hostova)unutar subneta

Ukupan (z)broj svihupotrebljivih IP adresa

255.0.0.0 /8 1 16777214 16777214255.128.0.0 /9 2 8388606 16777212255.192.0.0 /10 4 4194302 16777208255.224.0.0 /11 8 2097150 16777200255.240.0.0 /12 16 1048574 16777184255.248.0.0 /13 32 524286 16777152255.252.0.0 /14 64 262142 16777088255.254.0.0 /15 128 131070 16776960

Pogledajmo i tablicu za podmreže za klasu B mreža :

Netmask CIDRnotacija

Broj mogućihpodmreža(subneta)

Broj iskoristivih IPadresa (Hostova)unutar subneta

Ukupan (z)broj svihupotrebljivih IP adresa

Page 185: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 185/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

255.255.0.0 /16 1 65534 65534255.255.128.0 /17 2 32766 65532255.255.192.0 /18 4 16382 65528255.255.224.0 /19 8 8190 65520255.255.240.0 /20 16 4094 65504255.255.248.0 /21 32 2046 65472255.255.252.0 /22 64 1022 65408255.255.254.0 /23 128 510 65280

I na kraju slijedi tablica za podmreže za klasu C mreža:

Netmask CIDRnotacija

Broj mogućihpodmreža(subneta)

Broj iskoristivih IPadresa (Hostova)unutar subneta

Ukupan (z)broj svihupotrebljivih IP adresa

255.255.255.0 /24 1 254 254255.255.255.128 /25 2 126 252255.255.255.192 /26 4 62 248255.255.255.224 /27 8 30 240255.255.255.240 /28 16 14 224255.255.255.248 /29 32 6 192255.255.255.252 /30 64 2 128

255.255.255.254 /31 128 2 samo za point-to-pointmreže

256 samo za point-to-point mreže

Na osnovi naših potreba te korištenjem ovih tablica možemo odabrati pravilnu masku mreže.

Uzmimo slijedeći primjer : imamo mrežu 172.17.100.0 sa netmaskom : 255.255.255.0. Tu mrežuželimo podjeliti na dvije (2) mreže unutar kojih nam treba biti maksimalno 126 korisnih IP adresa.

Pogledajmo našu mrežu:

Dekadski 172 17 100 0Binarno 10101100 00010001 01100100 00000000

i njenu pripadajući Netmask adresu:

Dekadski 255 255 255 0Binarno 11111111 11111111 11111111 00000000

Korištenjem tablice zaključili smo da ako želimo 2 subneta od kojih svaki može imati do 126 korisnihadresa, Netmask mora biti : 255.255.255.128 tj. prema CIDR notaciji /25 što znaći da imamo 25jedinica u subnetu. To izgleda ovako:

Dekadski 255 255 255 128Binarno 11111111 11111111 11111111 10000000

Dakle posudili smo jedan bit iz host dijela da bi ga iskoristili za subnetiranje.

Page 186: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ovo je najbrža metoda kalkulacije subneta:

S jednim posuđenim bitom imamo dvije moguće mreže (prva mreža ako je bit u 0-li i druga kada je tajbit u 1-ici):

Bit ima vrijednost 0

Dekadski 172 17 100 0Binarno 10101100 00010001 01100100 00000000

Bit ima vrijednost 1

Binarno 10101100 00010001 01100100 10000000Dekadski 172 17 100 128

Ovdje smo dobili dvije mreže (kako smo i odabrali/planirali) :

(1 mreža): 172.17.100.0

i

(2 mreža): 172.17.100.128

Što to znači :

Za prvu mrežu

IP adresa mreže je : 172.17.100.0

Mreža se proteže sve do 172.17.100.127 (za jedan broj manje od druge mreže)

Prema tome Broadcast IP je : 172.17.100.127

Upotrebljive IP adrese su od : 172.17.100.1 do 172.17.100.126

Za drugu mrežu

IP adresa mreže je : 172.17.100.128

Mreža se proteže sve do 172.17.100.255 (za jedan broj manje od druge mreže)

Prema tome Broadcast IP je : 172.17.100.255

Upotrebljive IP adrese su od : 172.17.100.129 do 172.17.100.254

Page 187: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 187/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Nadmreže (Supernetting)

Nadmreža (Supernetting) je po logici suprotnost subnettingu. U slučajevima kada od više malih mrežaželimo napraviti jednu veliku mrežu koristimo supernetting. Supernetting je opisan u dva RFC-a :RFC1338 i RFC1519.

Određivanje nadmreža radi se u suprotnom smijeru od podmreža (subnets).Pogledamo li način na kojismo pomicali tj. posuđivali bitove u masci mreže (netmask) kod podmreža smo to radili od lijeva nadesno, u slučaju nadmreža se zapravo vraćamo unazad tj. od desno na lijevo.

Ova metoda se često koristi kod sumarizacija route-a često zvana i agregacija route-a.

O čemu se radi.

Za svaku mrežu koju imamo, naš Layer 3 uređaj (često Router) mora imati Route-u do nje. Svaka novaroute-a zauzima memoriju i oduzima određeno vrijeme za procesiranje (CPU load).

Pr. Ako imamo slijedeće route (iz mreža koje smo subnetirali prije):

172.17.100.0 / 255.255.255.128

172.17.100.128 / 255.255.255.128

Koje za izlaz na internet i sa interneta dolaze sa drugog interface-a na routeru :

10.14.5.1 / 255.255.255.252.

i želimo smanjiti broj route-a, napraviti ćemo nadmrežu koja uključuje sve postojeće podmreže.

Naš netmask izgleda ovako:

Dekadski 255 255 255 128Binarno 11111111 11111111 11111111 10000000

Pogledajmo sliku:

Page 188: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ovo je mali broj mreža ali ako imamo sustave sa jako velikim brojem mreža pojaviti će se potreba daubrzamo stvari sumarizacijom route-a, pa ćemo napraviti nadmreže.

U našem slučaju možemo napraviti slijedeće:

Za mrežu : 172.17.100.0 / 255.255.255.0 Izlazna IP će biti : 10.14.5.1 / 255.255.255.252

Dakle sada koristimo slijedeći netmask :

Dekadski 255 255 255 0Binarno 11111111 11111111 11111111 00000000

S ovime smo smanjili Routing tablicu na pola.

Što smo napravili ?

Promijenili smo Netmask koji sada govori da cijela nadmreža : 172.17.100.0 / 24 : što znači IP adrese172.17.100.0 do 172.17.100.255 , ima jednu route-u za ulaz/izlaz na internet i obratno da sve mrežekoje dolaze s interneta znaju da ovaj router iza sebe ima jednu veću mrežu 172.17.100.0 /24, bezpotrebe da znaju da smo ju mi iznutra razbili na dvije mreže. Na taj način smo i sebi i susjednimrouterima smanjili routing tablice.

Page 189: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 189/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Usmjeravanje (Routing)

Usmjeravanje (engl. Routing) je proces odabira (najboljeg) puta za prolaz mrežnih paketa premaodredištu.

Za potrebe routinga možemo koristiti :

Statičke route●

Routing protokole●

Statitičke Route se dodaju, kao što i ime kaže, statički (ručno) za svaku mrežu, što postaje malonezgodno kada imamo više mreža ili kada se mreže mijenjaju. U slučajevima kada imamo veliki brojmreža statičke route postaju problematične tj. vrlo teško ih je održavati ručnim i stalnim dodavanjem ibrisanjem, stoga se za sve imalo veće mreže korisite routing protokoli koji dinamički, automatskidodaju i brišu odnosno mijenjaju route. Svi Routeri na internetu, primjerice koriste neke od routingprotokola.

Statičke route se koriste za dodavanje default route (ovo je osnovna route-a) tj. default gateway-a.Drugi slučaj je ako imamo statične ili male nreže u kojima nam je praktično ručno dodavati/mijenjati ilibrisati route.

Default route-a obično ima oblik :

IP Adresa Netmask0.0.0.0 0.0.0.0

Default route-a koju vidite znači za sve IP adrese, odnosno u slučaju kada router ne zna gdje poslatineki paket tj. kada nema route za njega, paket se šalje na default route-u koja pokazuje gdje gaposlati. Zbog toga se i ova route-a dodaje ručno.

Što su uopće route ?

Route nam pokazuju tko je od routera (tj. njegov IP/Netmask par) odgovoran za koju mrežu tako daznamo gdje poslati koji mrežni paket koji izlazi iz naše mreže, prema drugoj mreži.

Jedna route-a može izgledati ovako (opisno):

Za mrežu 10.14.15.0 / 255.255.255.0 koristi IP : 172.17.100.254

Routing protokoli prema logici rada mogu koristiti dvije vrste algoritama, dakle routing protokoledijelimo prema vrsti algoritma koji koristi, a to su :

“Distance vector” protokoli●

“Link-state” protokoli●

"Distance vector" protokoli

Page 190: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

“Distance vector” routing protokoli su jednostavni za konfiguriranje i održavanje. “Distance vector”routing protokoli troše manje resursa. Princip njihovog rada je u tome da svaki router korištenjem“Distance vector” routing protokola obavještava susjedne routere o promjenama, periodički.

“Link-State” routing protokoli s druge strane morajuobavještavati sve routere unutar topologije, o promijenama umrežama.

“Distance-vector” protokoli su bazirani na kalkuliranju smjera (engl.Direction) i udaljenosti (engl.Distance) do odredišne mreže. Pod smjerom se smatra IP adresa slijedećeg routera (engl. Next Hop)na koji se šalje paket (uz podatak o tome koji je izlazni interface našeg routera). Pod udaljenosti sesmatra “cijena” (engl. Cost) do odredišta. Kako se određuje “cijena” ovisi o samom protokolu tj.metrici.

Pr. RIP protokol koristi tkzv. “hop count” do odredišta tj. prebrojavanje routera kroz koje mora paketproći da dođe do odredišta.S druge strane IGRP koristi kašnjenje (engl. Delay) i dostupni Bandwidth dotog odredišta.

Na osnovu svih navedenih parametara Router gradi tkzv. vektore minimalnih udaljenosti do svakemreže u tablicu koja se zove Routing tablica. Proces kada routeri razmjenjuju route i osvježavaju svojerouting tablice se zove konvergencija. Konvergencija “Distance-vector” protokola je veća u odnosu na“Link state” routing protokole (dakle sporiji su).

Primjeri “Distance vector” routing protokola su :

RIP - Routing Information Protocol (v.1 i v2.),●

IGRP - Interior Gateway Routing Protocol,●

EIGRP - Enhanced IGRP, …●

"Link-state" protokoli

“Link-state” routing protokoli rade tako da svaki router kreira kartu veza svih mreža u kojoj je vidljivokako su routeri međusobno spojeni odnosno kreira si topologiju mreže.

Tada si svaki router kalkulira najbolje logičke puteve za sva mrežna odredišta, prema kojima se,korištenjem određenih algoritama, kreira routing tablica.

Ovaj proces je prilično zahtjevniji (CPU i RAM) od “Distance vector” routing protokola ali je punopraktičniji za veće mreže te smanjuje konvergenciju uslijed promijena u mrežama.

Routing protokoli ove skupine načelno rade na slijedeći način:

1. Pronalaze se susjedni routeri,

Page 191: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 191/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

2. Između susjeda se razmjenjuju informacije, periodički ali i u slučajevima kada dolazi do nekihpromijena u mreži,

3. Kreira se topologija mreže,

4. Na osnovu topologije mreže se kreira (preračunava) routing tablica

Ono što dodatno čini ove protokole boljima za veće mreže je:

Mogućnost slanja podataka samo ako je došlo do promjena na nekoj od mreža●

Uzimanja cijele topologije mreže kao bitne za odluke kod usmjeravanja (routinga)●

Neki od protokola koji spadaju u ovu kategoriju su :

OSPF - Open Shortest Path First,●

IS-IS - Intermediate System to Intermediate System.●

Kako radi mreža (Layer2 + Layer3)

Zamislimo slijedeću topologiju mreže:

Page 192: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Računalo PC - A želi poslati mrežni paket na računalo PC - B.

Pogledajmo samo dio paketa koji sadrži:

Source (izvor) i Destination (odredište) IP adrese i●

Source (izvor) i Destination (odredište) MAC adrese●

Za sve IP adrese pretpostavljamo Netmask :255.255.255.0 , pa ga nećemo spominjati.

Što će se dogoditi s paketom, prolaskom kroz Routere na mreži, pogledajmo na slici:

Page 193: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 193/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Opis1. Računalo PC - A želi poslati paket na IP adresu : 172.17.200.1 , pošto to nije IP adresa iz njegovemreže, ono prvo gleda svoju routing tablicu i traži da li ima neku route-u do te mreže, pošto je nema(pretpostavimo da je tako u ovom slučaju), zna da paket mora poslati na Default Gateway : IP :172.17.100.254 , za koji prvo mora saznati MAC adresu (ovo je destination MAC):

Ako ju već ima, formira paket i šalje ga●

Ako ju nema ide u ARP zahtjev da sazna MAC adresu od IP adrese 172.17.100.254 te formira●

paket i šalje ga.

Dakle ovaj paket sadrži IP adresu ovog računala koje ga šalje (Source IP), i također MAC adresu ovogračunala (Source MAC) te odredišnu krajnju IP adresu: 172.17.200.1 te kao odredišnu MAC adresuMAC adresu Default Gateway-a.

2. Sada je Default Gateway (Router R1) preuzeo paket, on gleda svoju routing tablicu i na osnovu nje(ili ako nema route-u, ide na svoju default route-u [0.0.0.0 0.0.0.0]), koja u našem slučaju pokazuje naRouter R2 priprema paket tako da zadržava Source i Destination IP adrese ali kao Source MAC stavljasvoju MAC adresu a kao Destination MAC , MAC adresu od Routera R2 tj. od njegove mrežne kartice skojom ima direktnu vezu. Te šalje takav paket na njega.

3. Sada Router R2 preuzima paket, on gleda svoju routing tablicu i na osnovu nje (ili ako nema route-u, ide na svoju default route-u [0.0.0.0 0.0.0.0]), koja u našem slučaju pokazuje na krajnje (odredišno)računalo PC - B. Jer je to računalo direktno na njegovoj mreži. Potom priprema paket tako dazadržava Source i Destination IP adrese ali kao Source MAC stavlja svoju MAC adresu a kaoDestination MAC , MAC adresu od krajnjeg računala PC - B tj. od njegove mrežne kartice čiju MACadresu poznaje - ako ju ne poznaje traži ju pomoću ARP zahtjeva. Kada su sve MAC adrese poznatešalje se paket na odredište : PC - B.

Page 194: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Važno za napomenuti je da svaki paket sadrži i neke konkretne podatke i viši protokol ali to smo uovom primjeru zanemarili zbog fokusa na IP i MAC adrese i onoga što se s njima dešava u prijenosukroz mrežu.

Metode komunikacije

Različiti mrežni protokoli koriste različite metode odnosno načine komunikacije. Najčešće razlikujemotri osnovne metode komunikacije:

Unicast●

Broadcast●

Multicast●

Unicast

Unicast se koristi za komunikaciju “Host-to-host” tj. s jednog računala direktno na drugo. Koristi sekada dvije krajnje strane u komunikaciji (recimo računalo ← → računalo) trebaju komunicirati samomeđu sobom bez potrebe da se u komunikacijski kanal između njih uključuje i netko treći.

Pr. MAC adrese mrežnih kartica su unikatne, kao i IP adrese računala te u komunikaciji s protokolimakoji komuniciraju između dvije MAC adrese ili između dvije IP adrese, kažemo da je konunikacijaunicast tip komunikacije.

Dakle ovo bi bio slijedeći oblik komunikacije:

IP 1 (Računalo 1) ← → IP 2 (Računalo 2)

Pr. Slijedeća komunikacija je unicast komunikacija :

IP : 192.168.100.10 ← → 192.168.100.20

ili

IP : 192.168.100.10 ← → 10.14.5.20

Broadcast

Boradcast način komunikacije koristi se kada se određeni mrežni paket želi poslati na sva računala namreži. Prema logici rada ovo je suprotnost u odnosu na unicast.

Page 195: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 195/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Zamislimo IP komunikaciju u mreži : 192.168.100.0 / 255.255.255.0.

Znamo da je IP adresa 192.168.100.255 Broadcast IP adresa. Ako neko računalo iz postojeće mreže(bilo koja IP adresa od 192.168.100.1 do 192.168.100.254) pošalje neki paket na adresu192.168.100.255 (Broadcast IP) taj paket će primiti SVI na toj mreži.

Dakle Broadcast je način komunikacije u kojem jedan šalje na sve : Jedan → SVI

Broadcast način komunikacije je potreban za samo nekeprotokole ali za sve ostale nepotrebno zagušuje cijelu mrežu.

Multicast

Multicast komunikacija je komunikacija prema principu :

Jedan → Više njih odnosno grupa

ili

Više njih odnosno grupa → Više njih odnosno grupa

Multicast IP adrese su jedinstvene IP adrese koje prosljeđuju paket sa multicast odredišnom adresomna preddefiniranu grupu IP adresa. Tako da svako pojedino računalo koje šalje na multicast adresumože slati niz podataka na višestruke primaoce. Multicast je baziran na konceptu grupa. Svakikorisnik (Host računalo) može odabrati neku Multicast grupu, te će primati sadržaj namijenjen za tugrupu. U D klasi IP adresa (koje se koriste za Multicast ).

Podsjetimo se : Multicast adrese su adrese unutar slijedećeg opsega:

Početna multicast IP adresa Zadnja multicast IP adresa224.0.0.0 239.255.255.255

Postoji niz multicast adresa koje su rezervirane za lokalnu upotrebu i koje su rezervirane za točnoodređenu namjenu. Kraća lista rezerviranih multicast adresa izgleda ovako:

Multicast adresa Namjena224.0.0.0 Rezervirano224.0.0.1 Svi hostovi unutar mrežnog segmenta224.0.0.2 Svi Routeri unutar mrežnog segmenta

224.0.0.4 Svi Routeri koji koriste Distance Vector Multicast Routing Protocol (DVMRP) unutarmrežnog segmenta

Page 196: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

224.0.0.5 OSPF protokol za slanje “HELLO” paketa unutar mrežnog segmenta224.0.0.9 RIP v.2 za slanje Routing informacija svim RIP v.2 Routerima224.0.0.18 Virtual Router Redundancy Protocol (VRRP) komunikacija*.*.*.* …224.0.2.0 Odavde počinju upotrebljive multicast IP adrese koje nisu rezervirane

Multicast komunikacija može raditi na dva načina:

Aplikacijski : ovdje se sama aplikacija brine o multicast grupama (prima i šalje sve na i od multicast●

grupa)Na mrežnom nivou (kada mrežni uređaji odrađuju sve vezano za multicast grupe):●

U ovom slučaju mrežni uređaji kreiraju multicast grupe (da ne bude zabune to su multicast IP adrese)a svi koji žele biti članovi određene multicast grupe (IP adrese) moraju se prijaviti mrežnom uređajuda ih uključi u tu grupu. Kada netko šalje paket na tu grupu tada mrežni uređaj u pozadini taj istipaket proslijeđuje na sve koji su se pretplatili da budu članovi te grupe.

Popis (i opis) osnovnih mrežnih servisa

Zbog potrebe za razumjevanjem rada mreža, potrebno je okvirno shvatiti način rada osnovnihmrežnih servisa odnosno protokola.

TFTP i FTP

TFTP (Trivial File Transfer Protocol) i FTP (File Transfer Protocol) naizgled izgledaju isti ili barem vrloslični. Zapravo se radi o dva prilično različita protokola kojima je jedino zajedničko to da se koriste zaprijenos datoteka preko mreže. Ovdje prestaju sve sličnosti. Pogledajmo o čemu se radi.

TFTP

Trivial File Transfer Protocol (TFTP) je vrlo jednostavan protokol za razmjenu datoteka preko mreže.Točnije rečeno omogućava klijentskoj strani da uzme (engl. Get) ili pošalje (engl. Put) datoteku sa ilina TFTP poslužitelj.

Dakle logika rada je Klijent ← → Poslužitelj.

Najčešća dva primjera upotrebe ovog protokola su:

Page 197: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 197/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

1.Korištenje za instaliranje (kopiranje) operativnog sustava, koji se u pravilu nalazi na jednoj datoteci,na neki uređaj (ili tkzv. “Flash”-iranje).

2.Za pokretanje ili instaliranje operativnog sustava perko mereže (o ovoj metodi kasnije).

Zbog čega upravo TFTP ?

Zbog toga što je TFTP vrlo jednostavan za implementaciju te sama implementacija zahtjeva vrlo maloprostora za pohranu Dakle stane i u vrlo male Flash memorije, čak na flash memoriju same mrežnekartice. TFTP protokol koristi UDP protokol za transport, što ga čini nezahtjevnim i brzim alineotpornim na greške. Zbog navedene namjene sigurnost u prijenosu nije bitna jer preko njega se upraksi šalje tek nekoliko datoteka a postoji i dodatni mehanizam zaštite.

TFTP koristi UDP port 69

Kako radi prijenos podataka - malo detaljnije:

Prijenos podatak pokreće klijentska strana, tražeći čitanje (engl. Read) ili zapisivanje (engl. Write)određene datoteke na TFTP poslužitelju. Ako je poslužitelj odobrio zahtjev datoteka se razlama ublokove od 512 byte-a (standardno), iako je moguće da se dvije strane dogovore za drugu veličinu, tese šalje u jednom UDP paketu (da nema potrebe da se radi dodatna fragmentacija paketa). Svakiposlani paket se potvrđuje slanjem potvrdnog paketa (engl. Acjnowledge). U slučaju da neki paket nijepotvrđen, on se ponovno šalje. Ako se ipak paket izgubi u mreži tj. nikada ne dođe na odredište,čeka se da istekne vremenski okvir za slanje (engl. Timeout) te pošiljatelj (TFTP poslužitelj) ponovnošalje paket. Na kraju kada su svi paketi poslani, šalje se paket koji je obično veličine manje od 512byte-a tj. manje od onolike veličine koja je dogovorena za slanje. Taj paket završava prijenos.

FTP

File Transfer Protocol (FTP) je mrežni protokol za prijenos datoteka preko mreže. On za razliku od TFTPprotokola koristi TCP protokol za prijenos te se samim time i oslanja na provjeru integriteta podatakaod strane TCP protokola. Najčešće se koristi za prijenos jedne ili veće količine datoteka u lokalnimmrežama (LAN) ili preko interneta (WAN mreže).

FTP također radi po principu : Klijent ← → Poslužitelj.

Kod njega je specifično i to da koristi dva kanala u komunikaciji: Jedan za kontrolni promet i samuvezu Drugi za prijenos podataka.

Kod spajanja na FTP poslužitelj može se raditi i autentikacija korisnika po principu slanja : korisničkoime i lozinka ali nekriptirano. Dakle moguće je praćenjem paketa na mreži vidjeti korisničko ime ilozinku u čistom tekstualnom obliku. Osim toga moguća je i upotreba tkzv. “Anonimous” korisnika,ako je tako konfigurirano na poslužiteljskoj strani.

Za osiguranje sigurnosti prijenosa podataka često se koristila okmunikacija kroz neki SSL ili TLS kanal

Page 198: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

koij je kriptirao promet. U današnje vrijeme, često je zamijenjen sa SSH File Transfer Protokolom(SFTP) ako je potrebna sigurna razmjena podataka.

FTP koristi TCP port 20 za podatke (engl. Data)

FTP koristi i TCP port 21 za kontrolu (engl. Command)

Kako radi prijenos podataka korištenjem FTP protokola?

FTP može raditi u Aktivnom (engl. Active) ili pasivnom modu rada (engl. Passive), o kojima ovisi kakoće se konekcija ostvariti.

O oba slučaja klijentska strana kreira TCP kontrolnu vezu (TCP destination port 21), s time da je TCPSource port odabran standardnom metodom : 1024+slučajan broj=source port (nazovimo ga X).

U aktivnom modu rada klijent čeka dolazeću “Data” konekciju na portu X+1 sa poslužitelja i šalje FTPporuku poslužitelju da očekuje poruku na portu br. : X+1 , tada se ostvaruje nova konekcija (TCPThree Way Handshake).

Slika: Aktivni mod rada:

Ako je klijent iza nekog Firewall uređaja, ovakav način rada nije moguć te se mora koristiti “Passive”mod rada.

U pasivnom modu rada klijent koristi kontolnu konakciju za slanje “PASV” naredbe poslužitelju(zahtjeva prebacivanje u pasive mod rada) i dobiva od njega TCP port koji će koristiti kao destinationport (pruka koju prima je “Passive Port : Y”) tj. Y je broj porta koji mu poslužitelj dodjeljuje, uz njegovuIP adresu (poslužitelja).Konkretno dobiva nazad poruku “Passive IP Address=a.b.c.d” tj. konkretnu IP

Page 199: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 199/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

adresu poslužitelja.

Sada klijent otvara konekciju na poslužitelj s IP adresom koju mu je on dao (a.b.c.d) na destinationport koji mu je također poslao (Y) a kao source port postavlja X+1 i TCP konekcija se uspostavlja (TCPThree Way Handshake)

Slika: Pasivni mod rada:

Konekcije se zatvaraju standardno za TCP protokol.

Bootp

Bootstrap Protocol (BOOTP) se koristi za dodjeljivanje IP addrese mrežnom uređaju (računalu,poslužitelju. itd.) sa Bootp poslužitelja. BOOTP je izvorno opisan u RFC 951. Ova osnovnafunkcionalnost se sada koristi preko DHCP (Dynamic Host Configuration Protocol) protokola kojipodržava i BOOTP mogućnosti.

BOOTP koristi UDP protokol za transport, port 67

Kako to radi ?

Metoda 1

Page 200: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

S obzirom na činjenicu da je danas u skoro svaku mrežnu karticu ugrađen BOOTP klijent te TFTPklijent u BIOS mrežnih kartica, moguće je podizanje odnosno instalacija operativnog sustava pomoćuBOOTP i TFTP protokola već sa mrežne kartice. Ova metoda korištenja mrežne kartice za pokretanjei/ili instalaciju operativnog sustva preko mreže se zove i Preboot eXecution Environment (PXE).

Dakle kod upotrebe BOOTP protokola za pokretanje ili instalaciju operativnog sustava preko mreže:

1.Računalo se uključuje i podiže se PXE Boot dio sa mrežne kartice

2. BOOTP ili u današnje vrijeme DHCP klijent ugrađen u BIOS mrežne kartice traži IP adresu odBOOTP/DHCP poslužitelja

3. BOOTP mu daje IP adresu, te lokaciju Boot managera i IP adresu sa URL-om gdje se nalazi

4. Računalo/mrežna kartica podiže TFTP klijent koji preko TFTP protokola kopira Boot Manager, koji setada učitava u memorijui preko TFTP-a dohvaća konfiguracijsku datoteku u kojoj su popisaniparametri potrebni za slijedeći korak.

5. Boot manager se učitao u memoriju računala (RAM) te podiže najosnovnije mogućnosti rada dapročita konfiguracijsku datoteku u kojoj je upisana lokacija kernela operativnog sustava (koji morasadržavati i upravljački program [engl. Driver]) za neki brži i pouzdaniji protokol za prijenos datotekaperko mreže (Pr. FTP / SAMBA/CIFS / NFS / …)

6. Pomoću TFTP-a se dohvaća kernel operativnog sustava te se učitava u memoriju , on si otvarakonekciju na poslužitelj preko nekog od pouzdanijih protokola za prijenos datoteka (Pr. FTP /SAMBA/CIFS / NFS / …) te ovisno o operativnom sustavu koji je pohranjen na poslužitelju nastavlja saučitavanjem Operativnog sustava kao da se nalazi na nekom instalacijskom mediju (pr. DVD-ROM ilisl.)

Dalje se sve odvija kao da je instalacija ili korištenje Novog operativnog sustava lokalno sa DVD-ROM-a ili lokalnog tvrdog diska.

Ova metoda se koristi i za tkzv “Diskless” klijente dakle računala koja nemaju svoj tvrdi disk već sveučitavaju preko mreža sa poslužitelja.

Metoda 2 (manje se koristi)

Kada se računalo starta i podigne operativni sustav, sustav šalje BOOTP poruku (Broadcast ti poruke)na mrežu i traži da mu se dodjeli IP adresa. BOOTP poslužitelj pogleda u svoju tablicu slobodnih(neiskorištenih) IP adresa i dodjeljuje ovom računalu IP adresu.

DHCP

Dynamic Host Configuration Protocol (DHCP) je protokol sličan BOOTP protokolu ali sa naprednijimmogućnostima. Dakle DHCP protokol podržava punu funkcionalnost BOOTP protokola uz dodatnefunkcionalnosti koje nudi. Koristi se za automatsku konfiguraciju mrežnih IP parametara na straniklijenta, poput IP adrese i Netmaska, Default Gateway-a, DNS poslužitelja i mnogih drugihparametara.

Page 201: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 201/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Protokol funkcionira po principu : Klijent ← → Poslužitelj

DHCP (kao i BOOTP) koristi UDP protokol za transport, port 67

DHCP se koristi u svim modernim mrežama, počevši od kućnih mreža, mreža u malim i većimtvrtkama sve do najvećih mreža u najvećim korporacijama i internet providerima (ISP).

Kako radi DHCP ?

Kada se računalo pokrene i učita se operativni sustav, DHCP klijent na računalu šalje na mrežu DHCPupit (engl. DHCP Query), koji je po tipu Broadcast poruka (svi ju primaju).

DHCP poslužitelj na mreži zaprima zahtjev, pregledava svoju tablicu sa listom IP adresa (engl. Pool) inalazi prvu slobodnu (neiskorištenu) IP adresu + Netmask te čita ostale konfiguracijske parametre kojisu aktivirani, pr.:

IP adresu Default Gateway-a●

IP adrese DNS poslužitelja●

Ime domene(Domain name)●

Time Server●

…●

DHCP poslužitelj može biti konfiguriran da određeni parovi IPadresa + MAC adresa budu rezervirani. Na taj način će DHCPklijenti koji imaju rezervaciju svaki puta dobiti istu IP adresu.

DHCP poslužitelj ima definirano i i maksimalno vrijeme koje vrijedi za svaku IP adresu koju je dodjelio(engl Lease Time). Kada to vrijeme istekne klijent ponovno traži obnavljanje te iste IP adrese te muposlužitelj odgovara po istom principu. “Lease time” je isto jedna od opcija (standardna) za DHCP.

Nakon toga DHCP poslužitelj šalje DHCP klijentu direktno (unicast) poruku, sa svim parametrima kojisu bili aktivirani. Potom DHCP klijent konfigurira mrežu na osnovu parametara koje je primio od straneDHCP poslužitelja.

Kako detaljno izgleda proces komunikacije DHCP klijent ← → DHCP poslužitelj možete vidjeti na slici:

Page 202: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

DNS

Domain Name System (DNS) protokol je hijerarhijski, distribuirani sustav koji barata s imenima(nazivima) (engl. Naming) te se koristi za imena računala , servisa ili drugih resursa na mreži. DNSpovezuje ime sa IP adresom koja je osnovni element u mrežnoj komunikaciji. Dakle DNS kontaktiramokada želimo saznati IP adresu na osnovi imena nekog računala (FQDN - Fully qualified domain name)u mreži. Ovdje je bitno da razumijemo što je domena.

Domena je hijerarhijska struktura naziva koja počinje od vršne domene . , hijerarhijski prema dolje.Drugim riječima ime domene predstavlja poziciju unutar DNS hijerarhije. Domena se sastoji od listesvih domena, počevši od vršne domene sve do najdonje u hijerarhiji, odvojenih točkom . .

DNS koristi u većini slučajeva UDP protokol za transport, port 53

Komunikacija je tipa : klijent ← → poslužitelj.

U nekim slučajevima se koristi TCP protokol za transport :

Kada je odgovor od strane poslužitelja veći od 512 byte-a ili●

Kada se radi tkzv. “zone transfer”●

Kako izgleda hijerarhija:

1. Postoji korijenska domena na vrhu .

2. Postoje tkzv “Top level” odnosno vršne domene, koje su točno definirane i ne mogu se mijenjati:

Page 203: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 203/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Domena Tko ju koristi.com Komercijalne organizacije.org Neprofitne organizacije.edu Edukacijske organizacije.gov Državne agencije.mil Vojne organizacije.net Organizacije koje se bave mrežama… …

3. Ispod njih postoje pod domene i ispod njih pod domene i tako dalje.

Kako to izgleda:

Dakle svaki puta kada primjerice preko našeg web preglednika otvaramo stranicu na adresi :www.redhat.com dešava se slijedeće:

1. Naš preglednik kontaktira prvi DNS poslužitelj koji mu je dostupan (i konfiguriran) i pita ga tko znaIP adresu od : www.redhat.com ⇒ Zapravo svaka adresa izgleda ovako (završava s točkom)www.redhat.com.

2. Nama prvi DNS provjerava u svojoj bazi da li on može odgovoriti, ako ne okntaktira slijedeći DNS uhijerarhiji, koji je odgovoran za vršnu domenu .com, on gleda u svoju bazu i daje IP adresu od DNSposlužitelja odgovornog za tu vršnu domenu.

3. Kontaktira se DNS poslužitelj za tu vršnu domenu, kojeg se pita tko je odgovoran za www.redhat ion nam odgovara tko je slijedeći DNS koji je odgovoran , te nam on daje IP adresu (pr. to je IP :209.132.183.105 ). u slučajevima kada nije poznato koji je vršni DNS odgovoran za koju domenu (odvršnih domena : .com .net .org, …) tek tada se kontaktiiraj jedan od root DNS poslužitelja (.) koji dajeodgovor na to (tj. on odgovara za vršnu domenu .com je zadužen DNS xy) tada se kontaktira DNSzadužen za tu domenu itd.

4. Sada kada naš preglednik zna da je za www.redhat.com IP adresa 209.132.183.105, on se spajana nju (na IP adresu).

Page 204: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Važno za znati je da DNS poslužitelji, svaki puta kada saznajuza nove domene i vršne DNS poslužitelje odgovorne za njih,taj podatak čuvaju u svojoj privremenoj memoriji (cache) svedok ne istekne vremenski period koji je definiran za svakudomenu na svakom poslužitelju. U praksi se radi ovremenima od minimalno nekoliko sati. Stoga ako dođe doneke promijene u nekoj domeni, potrebno je prilično dugovremena (nekada i 24.h.) da toga budu svijesni svi DNSposlužitelji. Ovo osvježavanje odnosno njegovo namjernokašnjenje se zove propagacija.

U slučaju da tražimo podatak o računalu u našoj mreži: pr. server1.nasadomena, naš DNSposlužitelj koji je odgovoran za tu domenu će nam vratiti IP adresu : pr.: 192.168.100.100, koja će seu pozadini koristiti za komunikaciju.

Telnet i SSH

Telnet, kao i noviji SSH protokol omogućavaju nam pristup na komandno linijsko sučelje (shell)udaljenog računala (poslužitelja). Većina operativnih sustava ima svoju implementaciju Telnetprotokola za udaljeni pristup ali zbog njegovih poznatih sigurnosnih problema, u današnje vrijeme,većinom se prešlo na upotrebu SSH protokola.

Prvo ćemo se ukratko upoznati s telnet protokolom.

Telnet

Kao što sam rekao telnet omogućava pristup komandno linijskom sučelju udaljenih računalaodnosno pristupom na viirtualni terminal udaljenog telnet poslužiteljskog mrežnog servisa.

Telnet također radi na principu : klijent ← → poslužitelj.

Telnet kao transportni protokol koristi TCP, na portu 23

Telnet se kao protokol razvijao od 1968 godine. U to vrijeme najviše se koristio u akademskojzajednici ali najveću primjenu doživio je početkom 1990. godina, sve većim korištenjem interneta. Sobizorom da su se ljudi sve više spajali na udaljena računala ili poslužitelje pomoću telnet-a, sveviše je bilo i pokušaja zloupotrebe. Stoga se sve više pažnje počelo posvećivati sigurnosti. Zbogsigurnosnih problema i to najviše činjenice da se sav promet preko telnet protokola prima i šalje učistom tekstualnom nekriptiranom formatu (uključujući i ime korisničkog računa i lozinke) telnet sepočeo zamjenjivati sa puno sigurnijim SSH protokolom.

Pošto telnet radi po pricipu klijent ← → poslužitelj, na strani poslužitelja, potrebno je pokrenuti telnetposlužitelj a na strani klijenta, neki od telnet klijenata, poput PuTTY i drugih programa.

Page 205: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 205/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

SSH

SSH se koristi za udaljeni pristup na komandnolinijsko sučelje (engl. shell) Secure Shell odnosno (SSH)je mrežni protokol, koji koristi kriptiranje podataka koji se primaju i šalju, za razliku od telnetprotokola koji kao što smo rekli , nije siguran za komunikaciju, pogotovo preko interneta.

SSH tako]er radi na principu: klijent ← → poslužitelj.

SSH kao transportni protokol koristi TCP, na portu 22.

Postoje verzije 1 i 2 (poznate kao: SSH-1 i SSH-2) od kojih se verzija 2 najviše koristi. SSH je zamišljenkao zamjena za telnet.

SSH koristi (pouzdane) kriptografske algoritme za kriptiranje podataka koji prolaze između klijenta iposlužitelja. SSH koristi tkzv. sustav javnog ključa (engl. Public Key), koji se često naziva iasimetričnom kriptografijom.

Princip rada kriptiranja sustavom javni + privatni ključ je takav da :

1. Obije strane u komunikaciji kreiraju svoj par : javni + privatni ključ. Privatni ključ se čuva i ne dajenikome.

2. Jedna strana kriptira podatke s javnim ključem od druge strane, koji mu druga strana nudi.

3. Druga strana može dekriptirati sadržaj samo sa svojim privatnim ključem.

Kod SSH osnovni sistem rada je prema tome kreiranje para: javni + privatni ključ, tada se ti ključevikoriste za kriptiranje veze, uz potrebu da se korisnik autenticira sa kombinacijom: korisničko ime ilozinka. Pri tome su korisničko ime i lozinka od sustava a ne posebno kreirani od strane SSH. Ovo jenajčešća metoda rada.

Druga metoda rada je kreiranje para ključeva : javni i privatni na obije strane (klijent iposlužitelj).Javni ključ (engl. Public key) se ručno mora kopirati s klijenta na poslužitelj i poslužiteljevjavni ključ na klijentsku stranu.

Privatni ključevi se nikada ne razmjenjuju !.

Autentikacija se tada određuje upotrebom privatnih ključeva. Privatni ključevi se nikada niti na kojinačin ne kopiraju preko mreže u procesu autentikacije niti u bilo kojem drugom procesu rada. Kodprve konekcije se lokalno pohranjuje javni ključ koji se veže za IP / Hostname udaljene strane i kojisluži za provjeru identiteta druge strane. Naime u slučaju da se promijeni javni ključ koji se veže zaIP/Hostname znači da je došlo do nekih potencijalno sigurnosno problematičnih stvari te se ta

Page 206: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

konekcija neće ostvariti.

Ova metoda omogućava spajanje na drugi sustav bez potrebe da se unosi kombinacija : korisničkoime i lozinka, već se veza automatski kriptira u pozadini.

SSH verzija 2 se danas najviše koristi jer je donjela:

poboljšanja u procesu kriptiranja (engl. Diffie–Hellman key exchange),●

nove algoritme kriptiranja (AES 128, 192 , …),●

poboljšanu provjeru integriteta podataka●

podršku za PKI certifikate●

Konfiguracija mreže u Linuxu

Svi primjeri i objašnjenja koja slijede, vrijede za Red Hat bazirane Linux distribucije. Mi ćemo koristitiCentOS Linux distribuciju. Na drugim distribucijama linuxa koje su bazirane na Debian ili SlackwareLinuxu, konfiguracija se malo razlikuje ali je koncept isti.

Konfiguracija osnovnih mrežnih parametara koja je zajednička za sve (ili barem) većinu distribucijalinuxa je konfiguracija dostupnih DNS poslužitelja i parametara vezanih uz njih (/etc/resolv.conf)te konfiguracija mapiranja tj. razriješavanja (engl. Resolving) imena računala (engl. Hostame) u IPadrese (/etc/hosts).

/etc/hosts

Unutar ove datoteke nalaze se mapiranja iz IP adrese u hostname , za svako računalo za koje nijemoguće na neki drugi način razriješiti IP adresu iz naziva računala (hostname). Jedino što morapostojati unutar ove datoteke je unos za loopback interface (127.0.0.1), slijedećeg oblika

127.0.0.1 localhost.localdomain

Pogledajte A klasu mreža (vezano za loopback IP adresu)

Ako želimo dodati unos za neko računalo zbog bilo kojeg razloga (pr. nema unos na DNS poslužitelju iliuopće nemamo DNS u svojoj mreži), sintaksa je :

IP Adresa Hostname

Pr. Računalo imena : server1 i IP adrese : 192.168.1.10 želimo dodati kao novi unos, u novi redćemo dodati slijedeće:

192.168.1.10 server1

/etc/resolv.conf

Unutar ove datoteke nalazi se popis DNS poslužitelja na koje se naš sustav može/mora spojiti te popis

Page 207: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 207/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

domena koje se pretražuju. Dakle ovdje se nalaze upute za “default” pretraživanje za određenudomenu ili domene. Naime kada se pretražuje ime računala bez navedenog imena domene (tkzv.FQDN : fully qualified domain name) u ovoj datoteci je definirano koje ime domene će sustavautomatski nadodati na hostname.

Što je FQDN ime ? Ako želimo pristupiti računalu čije ime (hostname) je server1 i želimo da nam sehostname poveže sa IP adresom (jer za komunikaciju nam je potrebna IP adresa) a nismo napraviliunos u /etc/hosts već želimo da to razriješi DNS poslužitelj u kojemu je napravljen unos za našposlužitelj server1, potrebno nam je i puno ime s domenom (uz IP adresu DNS poslužitelja kojućemo ubrzo dodati).

Ako je naša domena lab.os onda ili moramo koristiti puno ime (FQDN) : server1.lab.os ili ovudomenu moramo dodati da se automatski nadodaje na hostname-ove koji su bez imena domene. i toovako (slijedi jedan red/linija u /etc/resolv.conf):

search lab.os

Osim ovoga moramo navesti i IP adrese našeg DNS poslužitelja u kojem su unosi za naša računala i zasva ostala računala na mreži. Ako je naš DNS server na IP adresi : 192.168.1.200 tada će slijedeći redizgledati ovako:

nameserver 192.168.1.200

Pošto je ovo mjesto gdje moramo definirati i sve ostale DNS poslužitelje koje koristimo na/zainternetu, moramo dodati i njih (dodati ćemo dva DNS poslužitelja od našeg ISP providera):

nameserver 195.29.166.116nameserver 195.29.166.117

Na ovaj način DNS “resolving” će nam raditi i prema internetu.

Kod svake (TCP/IP) mrežne komunikacije između dva krajnjaračunala, u pozadini sustav uvijek mora saznati iz imenakrajnjih računala (hostname) njihove IP adrese !.

/etc/sysconfig/network

U ovoj datoteci se definiraju informacije za cijelo računalo, koje se tiću Routinga i samog računala, štovaži za sve mrežne interface-a tj. za sve mrežne kartice u računalu.

Najčešće se koriste slijedeći parametri:

NETWORKING=VRIJEDNOST

VRIJEDNOST može biti :

Page 208: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

yes — Mreža će biti konfigurirana.●

no — Mreža neće biti konfigurirana.●

HOSTNAME=VRIJEDNOST

VRIJEDNOST može biti :ime računala (hostname) ali se preporuča imeračunala s domenom (Fully Qualified Domain Name)

GATEWAY=VRIJEDNOST

VRIJEDNOST je IP adresa Default Gaetway-a za ovo računalo.

NOZEROCONF=VRIJEDNOST

VRIJEDNOST može biti :.* ''yes'' — "zeroconf" se neće koristiti --> ovo je standardno.* ''no'' — "zeroconf" će se koristiti.

“ZEROCONF” je mogućnost da se kod podizanja sustava koristi IP adresa iz određenog opsega adresa(169.254.0.0) bez potrebe da se konfigurira mrežna kartica. !! Ovo se ne koristi za 99.99999%slučajeva!!

Primjer kako bi izgledala ova konfiguracijska datoteka da je konfiguracija našeg računala slijedeća:

Hostname : desktop1

Default Gateway IP : 192.168.1.254

NETWORKING=yesHOSTNAME=desktop1GATEWAY=192.168.1.254NOZEROCONF=yes

Datoteka /etc/sysconfig/network je mjesto zadefiniranje imena računala i IP adrese Default Gateway-a teaktiviranje/deaktiviranje mreže globalno na računalu.

/etc/sysconfig/network-scripts/ifcfg-<IME-MREŽNE-KARTICE>

Konfiguracija svake mrežne kartice nalazi se u datoteci poput ove : /etc/sysconfig/network-scripts/ifcfg-<IME-MREŽNE-KARTICE>

Page 209: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 209/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Nazivi mrežnih kartica u Linuxu

Standardno, mrežne kartice u Linuxu se nazivaju na slijedeći način:

Ime mrežne kartice Opiseth0 Prva mrežna karticaeth1 Druga mrežna karticaeth2 Treća mrežna karticaeth3 Četvrta mrežna kartica… …

Osim standarnih mrežnih kartica, moguće je koristiti i podkartice (subinterface), koje se vežu napostojeću fizičku mrežnu karticu i ponašaju se kao zasebne mrežne kartice, za koje je potrebnodefinirati sve parametre mreže.

Ime mrežne kartice Opiseth0:0 Prva podkartica na prvoj mrežnoj karticieth0:1 Druga podkartica na prvoj mrežnoj kartici… …eth1:0 Prva podkartica na drugoj mrežnoj karticieth1:1 Druga podkartica na drugoj mrežnoj kartici… …

Podkartice (engl. Subinterfaces) uočljive su po tome što unazivu imaju dodatak na fizičku mrežnu karticu :Broj.Primjerice na eth0 prva podkartica je 0 tj. eth0:0

Moguća je i upotreba VLAN mrežnih kartica. One moraju pripadati fizičkoj mrežnoj kartici, podkartici(ili nekom drugom vršnom tipu kartice).

VLAN mrežne kartice označavaju se s točkom ., na postojećumrežnu karticu. Pr, VLAN 14 na eth0 bi izgledao ovako:eth0.14. One se ponašaju kao i fizičke mrežne kartice i zanjih je potrebno konfigurirati sve parametre mreže.

Page 210: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Primjer VLAN kartica koje se vežu na fizičku mrežnu karticu, za VLAN 44

Ime mrežne kartice Opiseth0.44 VLAN br. 44 na prvoj mrežnoj kartici eth0eth1.44 VLAN br. 44 na drugoj mrežnoj kartici eth1… …

Primjer VLAN kartica koje se vežu na podkarticu (subinterface) fizičke mrežne kartice, za VLAN 44

Ime mrežne kartice Opiseth0:0.44 VLAN br. 44 na prvoj mrežnoj kartici eth0, i to na njenoj prvoj podkarticieth0:1.44 VLAN br. 44 na prvoj mrežnoj kartici eth1 i to na njenoj drugoj podkartici… …

Osim navedenih tipova postoje i drugi tipovi logičkih mrežnih kartica poput:

Agregiranih (engl. bonding) kartica : koje služe za agregaciju više fizičkih mrežnih kartica (eth0 ,●

eth1, ethN) u jednu logičku mrežnu karticu (Cisco terminologija je Ether Channel).

Bridge mrežnih kartica : one služe za spajanje više mrežnih kartica u jedan “Bridge” tj. Layer2●

uređaj, koji propušta sva promet s jedne kartice na drugu i obratno (ponaša se poput poput switcha:- jedna mrežna kartica = jedan port na switchu).

Ostalih specifičnih tipova.●

Nazivi za “Bonding” kartice su : bond0 , bond1 , … bondN.

Na “bonding” mrežne kartice moguće je kreirati podkartice (subinterface) i također VLAN kartice. Zasvaku od tih svih logičkih mrežnih kartica moraju se konfigurirati svi mrežni parametri (IP adresa,Netmask, …).

Nazivi “Bridge” mrežnih karticu su: br0 , br1 , … brN.

Na “bridge” mrežne kartice moguće je kreirati podkartice (subinterface) i također koristiti VLAN-ove

Page 211: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 211/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

unutar bridge-a. Za svaku od tih svih logičkih mrežnih kartica moraju se konfigurirati svi mrežniparametri (IP adresa, Netmask, …).

U novije vrijeme, pojavio se i novi način označavanja, zbog sustava s većim brojem mrežnih kartica tepotrebe da se iz naziva može vidjeti gdje je ta kartica spojena:

“on-board” (na matičnoj ploči)●

ili kao PCI/PCI-Express, …●

Nazivi ovih mrežnih kartica su (čisto informativno):

Ime mrežne kartice Opisem1, em2 , em3 , … emN “on-board” - na matičnoj pločip1p1 , p1p2 , … pxpy Za pr. PCI : p(broj PCI sabirnice)p(broj PCI porta)… …

Ovaj novi način označavanja (koji se i ne koristi previše), nećemo koristiti u daljem radu (primjerima).

Konfiguracija mrežnih kartica

Konfiguraciju mrežnih parametara svake mrežne kartice možemo odraditi statički (ručno) ili dinamičkipreko DHCP poslužitelja. Pod mrežnim parametria podrazumjevamo konfiguraciju:

IP adrese●

Netmaska●

Network IP adrese●

Broadcast IP adrese●

Default Gatewaya●

…●

Ručno se konfiguracija odrađuje preko naredbe ífconfig ili novije naredbe ip. Mi ćemo se baziratina ručnoj konfiguraciji pomoću naredbe ífconfig.

Statička konfiguracija

Statička konfiguracija može biti privremena (do slijedećeg restarta) ili trajna (permanentna).

Page 212: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Privremena konfiguracija s naredbom ifconfig

Pomoću naredbe ifconfig (engl. Interface Configuration) možemo napraviti privremenukonfiguraciju mrežne kartice odnosno parametara mreže, mrežne kartice. Istoimenu naredbukoristimo i kada želimo samo vidjeti (ispisati) trenutnu konfiguraciju mrežnih kartica.

Ako naredbu ifconfig pozovemo bez parametara ili prekidaća, dobiti ćemo ispis konfiguracija svihaktivnih mrežnih kartica tj. interface-a.

Naredba Opisifconfig Ispiši konf. svih mrežnih interface-a koji su aktivniifconfig -a Ispiši konf. svih mrežnih interface-a - i aktivnih i neaktivnihifconfig ethx Ispiši konfiguraciju za točno određeni interface (pr. za eth0 : ifconfig eth0)

Svaki mrežni interface može biti aktivan ili neaktivan (alipostojeći na sustavu).

Aktivacija i deaktivacija interface-a.Svaki interface koji postoji na sustavu inicijalno je potrebno aktivirati. U slučajevima da nam više netreba možemo ga deaktivirati, on će pritom i dalje postojati na nivou operativnog sustava ali neće biti“uključen” - slično kao da smo ga ugasili.

Interface aktiviramo/deaktiviramo na slijedeći način:

Naredba Opisifconfig ethx up ethx je ime inetrface-a (za eth0 to je : ifconfig eth0 up)ifconfig ethx down ethx je ime inetrface-a (za eth0 to je : ifconfig eth0 down)

Primjer

1.Aktivirajmo mrežnu karticu eth0 :

ifconfig eth0 up

2.Dektivirajmo mrežnu karticu eth0 :

ifconfig eth0 down

Konfiguriranje IP parametara

U primjerima ćemo koristiti mrežku karticu eth0. Definirajmo slijedeće IP parametre koje ćemokonfigurirati:

Page 213: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 213/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

IP adresa: 172.17.100.1●

Netmask: 255.255.255.0●

Broadcast IP: 172.17.100.255●

Konfiguracija IP adrese mrežnog interface-a

Sintaksa je :

ifconfig <mrežni interface> <IP adresa>

Primjer

ifconfig eth0 172.17.100.1

Konfiguracija maske mreže (Netmask) mrežnog interface-a

Sintaksa je :

ifconfig <mrežni interface> netmask <netmask adresa>

Primjer

ifconfig eth0 netmask 255.255.255.0

Konfiguracija broadcast adrese mrežnog interface-aNapomena : ako je par IP adresa + Netmask pravilno konfiguriran i broadcast IP adresa će bitiispravno automatski konfigurirana.

Sintaksa je :

ifconfig <mrežni interface> broadcast <broadcast adresa>

Primjer

ifconfig eth0 broadcast 172.17.100.255

Na kraju potrebno je i podići interface

ifconfig eth0 up

Sve gore navedeno moguće je konfigurirati u jednom redu. Pogledajmo kako.

Sintaksa je :

ifconfig <mrežni interface> <IP adresa> netmask <netmask adresa> broadcast<broadcast adresa>

Page 214: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Primjer

ifconfig eth0 172.17.100.1 netmask 255.255.255.0 broadcast 172.17.100.255

U slučaju da istovremeno konfiguriramo i IP adresu i netmask, Broadcast IP adresa će biti automatskiizračunata i dodana:

Primjer

ifconfig eth0 172.17.100.1 netmask 255.255.255.0

Ako želimo obrisati konfiguraciju mreže, mrežne kartice, dovoljno je da ju isključimo:

Sintaksa:

ifconfig <mrežni interface> down

Primjer za eth0:

ifconfig eth0 down

Trajna (permanentna) konfiguracija

……………………………. ………… u izradi …………. …………………………….

Privremena konfiguracija route-a s naredbom route

U slučajevima kada je privremeno potrebno dodavati nove route, koristimo se naredbom route. Ovepromijene nisu trajne i traju samo do restarta.

Ista naredba se koristi i za ispis trenutnih route-a na sustavu.

Primjer

Ispišimo sve route na sustavu, u brojčanom obliku (-n prekidać) :

route -n

Kernel IP routing table

Page 215: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 215/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Destination Gateway Genmask Flags Metric Ref UseIface172.17.100.0 0.0.0.0 255.255.255.0 U 0 0 0 eth00.0.0.0 172.17.100.254 0.0.0.0 UG 0 0 0 eth0

Vidimo da je za default route-u (Destination : 0.0.0.0 i Netmask : 0.0.0.0) Default Gateway IP :172.17.100.254 , preko interface-a : eth0

Kako dodati Default Gateway

Default gateway koji će biti trajno (permanentno)konfiguriran, konfigurira se u : /etc/sysconfig/network,u varijabli GATEWAY=

Privremena konfiguracija Default Gateway-a odrađuje se sa slijedećom sintaksom:

route add default gw <IP adresa Default Gateway-a>

Primjer

route add default gw 172.17.100.254

Kod dodavanja route-a, mogu se dodavati route prema mrežama (engl. Network) ili pojedinimračunalima (engl. Host).

Sintaksa za dodavanje (engl. Add) route-a prema mrežama:

route add -net <IP adresa mreže> netmask <Netmask od te mreže> gw <IP adresaGateway-a od te mreže>

Sintaksa za brisanje (engl. Delete) route-a prema mrežama:

route del -net <IP adresa mreže> netmask <Netmask od te mreže> gw <IP adresaGateway-a od te mreže>

Primjeri

Dodajmo route-u za mrežu 192.168.100.0 /255.255.255.0 preko Gateway-a : 172.17.100.252

route add -net 192.168.100.0 netmask 255.255.255.0 gw 172.17.100.252

Ako nam više ne treba obrišimo istu route-u koju smo dodali:

Page 216: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

route del -net 192.168.100.0 netmask 255.255.255.0 gw 172.17.100.252

……………… …… u izradi ……… …………………….

Trajna konfiguracija route-a s naredbom route

……………… …… u izradi ……… …………………….

Dinamička konfiguracija korištenjem DHCP poslužitelja

……………… …… u izradi ……… …………………….

Privremena konfiguracija korištenjem DHCP poslužitelja

……………… …… u izradi ……… …………………….

Trajna konfiguracija korištenjem DHCP poslužitelja

……………… …… u izradi ……… …………………….

Osnovni mrežni alati

Nabrojati ćemo i objasniti neke od osnovnih alata za provjeru dostupnosti i ispravnosti rada mreže imrežnih servisa.

Page 217: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 217/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

ping

Naredba ping se koristi za testiranje dostupnosti hosta (računala,poslužitelja, mrežnog uređaja, …)koji koristi TCP/IP protokol. Osim same dostupnosti mjeri se i vrijeme koje je potrebno da paket dođedo odredišta.

Ime naredbe ping je nastalo na osnovu (podvodnog) sonarakoji šalje impulse zvuka u određenom smjeru, te detektirajeku (engl. Echo) odnosno odbijeni zvuk, koji se odbio ododređenog predmeta ispod vode. Zvuk koji se pri tome čujepodsjeća na riječ “ping”.

Kako radi ping ?.Naredba ping šalje poseban paket, korištenjem ICMP protokola (Internet Control Message Protocol),konkretno se radi o “ICMP Echo Request” poruci, na odredišnu IP adresu te se čeka na odgovor. Saodredišne IP adrese se šalje odgovor (ICMP Echo Reply) te se mijeri vrijeme između slanja i primanja(engl. Round-trip) te se prati koliko se paketa potencijalno izgubilo.

Vrijeme između slanja i primanja se zove latencija ili tromost odnosno kašnjenje.

Konačan rezultat je ispis statistike o primljenim paketima:

Koliko je paketa poslano a koliko primljeno (koliki je postotak uspješnosti)●

Koja su prosječna vremena od slanja do primanja paketa (minimalno, srednje i maksimalno vrijeme)●

Ping omogućava i korištenje dodatnih opcija (prekidača),od kojih ćemo koristiti samo prekidać -c kojioznačava koliko paketa želimo poslati, a ostale nećemo objašnjavati.

Primjer

Provjerimo dostupnost IP adrese (192.168.200.100) na našoj lokalnoj mreži, slanjem 5 paketa:

ping -c 5 192.168.200.100

PING 192.168.200.100 (192.168.200.100) 56(84) bytes of data.64 bytes from 192.168.200.100: icmp_req=1 ttl=64 time=0.297 ms64 bytes from 192.168.200.100: icmp_req=2 ttl=64 time=0.125 ms64 bytes from 192.168.200.100: icmp_req=3 ttl=64 time=0.199 ms64 bytes from 192.168.200.100: icmp_req=4 ttl=64 time=0.246 ms64 bytes from 192.168.200.100: icmp_req=5 ttl=64 time=0.325 ms

--- 192.168.200.100 ping statistics ---5 packets transmitted, 5 received, 0% packet loss, time 3997msrtt min/avg/max/mdev = 0.125/0.238/0.325/0.072 ms

Page 218: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Ovdje vidimo da je druga strana dostupna i da je bilo 0% gubitaka. Bitno je i da nije bilo većihodstupanja u vremenima, za svaki paket te da je prosječno vrijeme (avg : engl. Average): 0.238 msšto je za loklanu mrežu vrlo brzo.

Koja vremena odziva očekivati ?Za LAN mreže : unutar nekoliko milisekundi (ms)

Za WAN mreže :

Unutar države do ~100 ms (internet) tj. do ~50ms ako imate zakupljene linkove (između dva grada●

unutar tvrtke ili sl.)Do drugih susjednih država i dalje ~200 ms●

Sve puno dalje i nešto više od +200 ms●

traceroute

Za razliku od naredbe ping koja provjerava dostupnost krajnje točke u komunikaciji, naredbatraceroute prikazuje nam sve točke (route) kroz koje prolazi paket do odredišta, uz mjerenjekašnjenja do svake od tranzitnih točaka (odnosno Layer 3 uređaja).

Kako to radi ?Zamislimo slijedeću topologije mreže na internetu :

Ako naše računalo (PC1) želi napraviti traceroute na drugo računalo PC2 (koje je negdje nainternetu), a paket mora proći kroz 6 routera, mjeriti će se vrijeme koje je potrebno od našeg računalakoje inicira mjerenje, do svakog od njih i na kraju do odredišta, po principu:

Računalo 1 (PC1) ←→ Router 1 (R1)

Page 219: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 219/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Računalo 1 (PC1) ←→ Router 2 (R2)Računalo 1 (PC1) ←→ Router 3 (R3)Računalo 1 (PC1) ←→ Router 4 (R4)Računalo 1 (PC1) ←→ Router 5 (R5)Računalo 1 (PC1) ←→ Router 6 (R6)Računalo 1 (PC1) ←→ Računalo 2 (PC2)

Zapravo se na svaku točku u prijenosu (Router) šalju 3 paketa. Ovisno o implementaciji , obično seispisuju sva tri mjerenja za svaku točku. U slučaju da sva tri mjerenja po mjernoj točki (routeru) nebudu obrađena, ide se dalje i označavaju se tri znaka o neuspjeloj konekciji (*) na problematičnojmjernoj točki.

traceroute na Linuxu može slati ICMP poruke (isti prokol kao za ping ali drugi podtip poruke) , UDPporuke ili TCP poruke.Ovaj odabir postoji zbog toga što je moguće da neki routeri u nizu zbogsigurnosnih i drugih razloga imaju isključen rad sa ICMP porukama. Tada će u odgovorima bit samo trizvijezdice (* * *) koje označavaju grešku, za svaki router koji nije odgovorio. Upotrebom UDP ili TCPporuka taj problem se riješava jer se više ne šalje ICMP poruka nego TCP odnosno UDP paket (port 53(DNS)).

Primjer

1. Probajmo napraviti traceroute na google.com:

Napomena :-n prekidać znači da ne želimo da se IP adrese prevode (engl. resolving ) u imena (FQDN)routera, već da imamo samo prikazane IP adrese.

traceroute -n google.com

traceroute to google.com (212.92.207.155), 30 hops max, 60 byte packets 1 192.168.100.1 0.051 ms 0.014 ms 0.012 ms 2 192.168.200.1 3.014 ms 4.342 ms 4.511 ms 3 10.51.192.1 2.824 ms 2.813 ms 2.798 ms 4 10.10.4.17 5.841 ms 5.833 ms 5.865 ms 5 10.10.0.29 5.795 ms 5.915 ms 5.943 ms 6 10.50.0.73 6.374 ms 6.332 ms 6.362 ms 7 10.50.0.74 6.201 ms 5.642 ms 5.602 ms 8 * * * 9 * * *10 * * *11 * * *12 * * *13 * * *14 * * *15 * * *16 * * *17 * * *18 * * *19 * * *20 * * *21 * * *22 * * *

Page 220: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

23 * * *24 * * *25 * * *26 * * *27 * * *28 * * *29 * * *30 * * *

Vidljivo je da sve do router br. 7 imamo mjerenja a dalje je sve zablokirano (za ICMP). Inaće sepokušava koristiti maksimalno do 30 točaka (routera) do odredišta (tkzv. Hop-ovi). Zbog toga engl.naziv “Hop count”. Ovo ograničenje je po potrebi moguće i proširiti. Ovaj pojam je povezan s pojmomTTL (Time To Live) koji označava koliko maksimalno routera neki mrežni paket može proći pa se s timparametrom i proširuje broj routera (parametar -m Broj-routera-veći-od-30).

Svaki paket na mreži ima postavljen TTL (Time To Live) broj iprolaskom paketa kroz svaki router na putu ovaj broj routersmanji za jedan, sve dok se ne dođe do nule. Ako se došlo donule paket se odbacuje. Drugim riječima ako je nekompaketu trebalo do odredišta preveliki broj routera on će bitiodbačen. Standardni postavljen TTL na operativnom sustavuLinux je obično 64. Definiran je i može se mijenjati u :/proc/sys/net/ipv4/ip_default_ttl

2. Probajmo sada korištenjem TCP protokola - prekidač -T. U ovom slučaju šalje se TCP SYN paket (zaotvaranje TCP konekcije).

traceroute -n -T google.com

traceroute to google.com (212.92.207.152), 30 hops max, 60 byte packets 1 192.168.100.1 0.050 ms 0.008 ms 0.007 ms 2 192.168.200.1 3.444 ms 4.108 ms 4.283 ms 3 10.51.192.1 2.213 ms 2.255 ms 2.391 ms 4 10.10.4.17 5.729 ms 5.767 ms 5.803 ms 5 10.10.0.29 6.256 ms 6.209 ms 5.895 ms 6 10.50.0.73 6.982 ms 6.796 ms 6.821 ms 7 10.50.0.74 6.653 ms 5.713 ms 5.626 ms 8 212.92.207.152 5.661 ms 5.348 ms 5.280 ms

Sada vidimo da imamo mjerenja do krajnje točke (točka 8).

Page 221: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 221/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

nslookup

Naredba nslookup (engl. name server lookup) koristi se za provjeru ispravnosti ili dostupnosti unosau DNS (engl. Domain Name System) poslužitelju. Pomoću ove naredbe kontaktiramo DNS poslužiteljda nam razriješi IP adresu na osnovu nekom imena računala ili FQDN imena (ime računala sdomenom).

U slučavima kad asumnjamo da nam DNS poslužitelji nisu dobro konfigurirani ili nam zbog nekogdrugog razloga DNS resolving ne radi ovo je alat koji nam može pomoći.

Primjer

1. Pronađimo IP adresu poslužitelja opensource-osijek.org

nslookup opensource-osijek.org

Server: 195.29.166.116Address: 195.29.166.116#53

Non-authoritative answer:Name: opensource-osijek.orgAddress: 213.147.104.78

Ovdje vidimo da je nslookup pronašao prvi DNS poslužitelj konfiguriran na sustavu (192.29.166.116)te da je njemu poslao upit da mu da IP adresu od FQDN imena: opensource-osijek.org .

Dobili smo odgovor da je njegova IP adresa : 213.147.104.78, što je točno. Iz ovoga možemo rećida nam je DNS poslužitelj dobro konfiguriran te da nam odgovara te da smo dobili traženi odgovor.

Napomena :

Non-authoritative answer znači da smo dobili odgovor od DNS poslužitelja koji nije zadužen za tudomenu (.org u ovom slučaju) te da je on morao pitati viši DNS poslužitelj u hijerarhiji.

Authoritative answer znači da bi dobili odgovor od DNS poslužitelja koji je zadužen za tu domenu zakoju smo slali upit te da on nije morao pitati viši DNS poslužitelj u hijerarhiji.

2. Promijenimo DNS poslužitelj koji želimo da se kontaktira u 213.147.96.4 , te mu pošaljimo isti upit.

nslookup

> server 213.147.96.4Default server: 213.147.96.4Address: 213.147.96.4#53

> opensource-osijek.orgServer: 213.147.96.4Address: 213.147.96.4#53

Non-authoritative answer:

Page 222: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Name: opensource-osijek.orgAddress: 213.147.104.78> exit

Naredba nslookup može se pokrenuti i bez parametara, tada ulazimo u njeno komandnolinijskosučelje (CLI).

DNS poslužitelj smo promijenili naredbom server iza koje slijedi IP adresa DNS poslužitelja.

Nakon toga očekuje se puno ime računala (FQDN) koje provjeravamo.

U slučaju da vaš CentOS nema nslookup naredbu, morateinstalirati bind-utils: yum install bind-utils

netstat

Naredba netstat (engl. Network Statistics) prikazuje nam razne parametre rada mreže :

IP konfiguraciju mrežnih kartica,●

Routing tablice,●

Mrežne konekcije,●

Statistike vezane za mrežne protokole , ….●

Postoji cijeli niz parametara od kojih ćemo spomenuti samo neke :

Parametar(prekidač) Opis

-a Prikazuje sve mrežne konekcije i TCP/UDP portove

-e Prikazuje “Ethernet”parametre mreže te statistiku o količini primljenih/poslanihpodataka

-g Prikazuje statistiku za Multicast-r Prikazuje Routing tablicu-i Prikazuje statistiku za mrežne interface-e i mrežne kartice

-n Sve oknekcije koje prikazuje, prikazuje s IP adresama a ne s imenima računala(hostname)

-p Prikazuje statistike prema protokolu uz ispis servisa (daemona) zaduženog zakonekciju

Primjeri

Page 223: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 223/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

1. Prikaži sve mrežne konekcije (-a) ali u brojčanom formatu (-n):

netstat -an

Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign AddressStatetcp 0 0 0.0.0.0:389 0.0.0.0:*LISTENtcp 0 0 127.0.0.1:199 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:3306 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:80 0.0.0.0:*LISTENtcp 0 0 192.168.1.101:80 123.125.71.35:6851SYN_RECVtcp 0 0 127.0.0.1:38771 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:21 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:22 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:25 0.0.0.0:*LISTENtcp 0 0 0.0.0.0:443 0.0.0.0:*LISTENtcp 0 0 192.168.1.101:443 144.76.137.226:43556TIME_WAITtcp 0 0 192.168.1.101:48388 192.168.1.131:514ESTABLISHEDtcp 0 0 192.168.1.101:443 144.76.137.226:53085TIME_WAITtcp 0 0 192.168.1.101:443 144.76.137.226:56128TIME_WAITtcp 0 0 192.168.1.101:443 144.76.137.226:40703TIME_WAITtcp 0 0 127.0.0.1:389 127.0.0.1:42370ESTABLISHED... ... ...... ... ...

2. Prikaži sve mrežne konekcije (-a) ali u brojčanom formatu (-n) s time da vidimo koji servis(daemon) je otvorio koji TCP/UDP port (-p) ⇒ vidljivo u stupcu PID/Program name:

netstat -anp

Page 224: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

Active Internet connections (servers and established)Proto Recv-Q Send-Q Local Address Foreign AddressState PID/Program nametcp 0 0 0.0.0.0:389 0.0.0.0:*LISTEN 596/slapdtcp 0 0 127.0.0.1:199 0.0.0.0:*LISTEN 610/snmpdtcp 0 0 0.0.0.0:3306 0.0.0.0:*LISTEN 776/mysqldtcp 0 0 0.0.0.0:80 0.0.0.0:*LISTEN 858/httpdtcp 0 0 127.0.0.1:38771 0.0.0.0:*LISTEN 16972/Passenger Ractcp 0 0 0.0.0.0:21 0.0.0.0:*LISTEN 639/vsftpdtcp 0 0 0.0.0.0:22 0.0.0.0:*LISTEN 620/sshdtcp 0 0 0.0.0.0:25 0.0.0.0:*LISTEN 821/sendmailtcp 0 0 0.0.0.0:443 0.0.0.0:*LISTEN 858/httpdtcp 0 0 192.168.1.101:443 144.76.137.226:48515TIME_WAIT -tcp 0 0 192.168.1.101:48388 192.168.1.131:514ESTABLISHED 493/rsyslogdtcp 0 0 192.168.1.101:443 144.76.137.226:51755TIME_WAIT -tcp 0 0 192.168.1.101:443 144.76.137.226:37826TIME_WAIT -tcp 0 0 127.0.0.1:389 127.0.0.1:42370ESTABLISHED 596/slapd

... ... ...

... ... ...

Vidljivo je pr. da je mysql baza podataka (mysqld servis/daemon) na IP adresi : 0.0.0.0 (ovoračunalo) , port 3306. Osim toga vidimo da je Web poslužitelj httpd (Apache) , također na IP adresi :0.0.0.0 (ovo računalo) , port 80 , …

3. Prikažimo statistiku za sve mrežne interface-e (-i)>

netstat -i

Kernel Interface table

Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg

Page 225: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 225/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

eth0 1500 0 678732758 0 0 0 663110829 0 00 BMRUlo 16436 0 194960446 0 0 0 194960446 0 00 LRU

Vidimo da na sustavu postoje dva mrežna interface-a, za koje vidimo i statistike, koliko mrežnogprometa je primljeno i poslano s njih i na njih:

eth0 ⇒ Ovo je mrežna kartica

lo ⇒ Ovo je “loopback” interface

4. Ispiši Routing tablicu (-r):

netstat -rn

Kernel IP routing tableDestination Gateway Genmask Flags MSS Window irttIface192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0eth0169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0eth00.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0eth0

Vidimo da je Default Gateway (Destination IP : 0.0.0.0 i Genmask (netmask): 0.0.0.0) postavljen na IPadresu : 192.168.1.1, preko eth0 mrežne kartice, kao i routing tablicu za mrežu 192.168.1.0 /255.255.255.0 koja isto ide na eth0 mrežnu karticu (ovo je mreža na kojoj je ovo računalo).

Mrežni servisi (daemoni)

…………………………………. ……………u izradi ……………… ………………………………….

Napredne mrežne tehnologije

Ukratko ćemo se upoznati s naprednim mrežnim tehnologijama i objasniti ćemu one služe.

Page 226: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

VLAN-ovi

VLAN čini logičku grupu ili cjelinu raznih mrežnih komponenti (računala, mrežnih uređaja i sl.).●

VLAN-ovi se obično grupiraju prema nekim logičkim podjelama mreže: pr. prema odjelu tvrtke,prema specifičnim zahtjevima korisnika, poslužitelja i sl. Switch-evi i bridge-vi propuštaju unicast,multicast i broadcast promet samo unutar VLAN-a unutar kojega se nalaze. Dakle komunikacija jemoguća samo između svih mrežnih uređaja i računala unutar jednog VLAN-a.

Promet između VLAN-ova nije moguć bez Layer 3 uređaja(Routeri ili Multilayer Switchevi).

VLAN TRUNK●

TRUNK-ovi (prema Cisco terminologiji) omogućavaju “propuštanje” više istovremenih VLAN-ova, krozodređeni interface. Standardno svaki interface može biti isključivo samo u jednom VLAN-u. U slučajupotrebe da kroz određeni interface (port na switchu/routeru/…) moramo ili želimo propuštati višeVLAN-ova, moramo interface konfigurirati kao trunk te odabrati neki od “trunk” protokola, kojipojednostavljeno, na svaki mrežni paket lijepe VLAN-ID, tkzv “tag” ili “naljepnicu” , sve dok putujekroz interface koji je u trunk mod-u.Dakle kada paket koji ima VLAN tag, dođe do “normalnog”interface-a, u točno određenom VLAN-u (čiji “tag/ID” nosi), taj tag se skida i paket dalje nastavlja putkao običan/normalan. Postoji nekoliko protokola za trunk-ing a to su:

Cisco ISL●

IEEE 802.1Q●

Kako to radi na pojednostavljenom modelu, vidljivo je na slici.

Page 227: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 227/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

Bonding (Agregacija/Etherchannel)

…………………………………. ………..u izradi …………………. ………………………………….

Mrežni uređaji

Kratak (p)opis mrežnih uređaja i pojmova o kojima smo pričali:

HUB

Hub-ovi ili koncentratori su se koristili za spajanje više uređaja (računala/poslužitelja , …) na dijeljenimrežni medija (pr. bakar [UTP]) mrežu. Oni rade poput “Repeater-a” dakle oni samo pojačavajuoslabljeni signal kroz mrežu . Oni su prema OSI modelu na prvo sloju (Layer 1).

Oni nemaju nikakvu logiku rada već samo pojačavaju i šalju signal na mrežu. HUB-ove su zamjeniliswitchevi (pogledajte prethodno poglavlje “Nasljeđe prošlosti” i CSMA/CD protokol koji je izmišljen

Page 228: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

zbog HUB-ova i problema koje donose).

Bridge

Bridge uređaji su se koristili za spajanje više mreža povezanih HUB-ovima. Oni su odvajali segmentemreža spojenih HUB-ovima, pošto rade na OSI sloju 2 (Layer 2). Bridge-evi su zapravo switchevi ali savrlo malim brojem portova. Bridgeve su zamjenili Switchevi tj. switchevi su bridgevi sa velikim brojemportova.

Switch

Switchevi ili preklopnici su uređaji koji rade na OSI sloju 2 (Layer 2) (postoje i Multilayer switchevi).

Switchevi odlučuju o preklapanju na osnovu MAC adresa, koje se nalaze unutar svakog paketapodataka, koji putuje mrežom.Switchevi imaju puno portova (mrežnih utičnica) na koje se spajajuračunala.

To u praksi znači da switch za svaki paket koji primi, provjeri odredišnu (destination) MAC adresu ionda na osnovu svoje tablice MAC adresa odlučuje na koji port (u konačnici kojem računalu) ćeproslijediti taj paket. Ako destination MAC adresa paketa nije u MAC adress tablici tada switch tražipreko ARP poruke (koja je broadcast - svi na mreži ju primaju) tko ima tu MAC adresu te osvježavasvoju MAC tablicu. Nakon toga se taj mrežni paket šalje na ispravan port. Switchevi preklapanjepaketa (s porta na port) odrađuju brzinama u okvirima mikrosekundi (μs).

Router

Routeri ili usmjerivači su uređaji koji rade na OSI sloju 3 (Layer 3) i/ili OSI sloju 4 (Layer 4). Oni običnopovezuje udaljene lokacije – veza između LAN-a i WAN-a. Njihov princip rada je sličan kao kodswitcheva samo što oni umjesto MAC adresa provjeravaju IP adrese. Svaki paket koji dođe do routera,router provjeri (pročita destination IP) te pogleda u svoju routing tablicu (slčno kao MAC tablica kodswitcha) da li zna kamo ga poslati.

Router također ima DEFAULT ROUTE-u (slično kao Defaul Gateway), ona služi u slučajevima kadaRouter ne zna kamo s nekim paketom, onda ga on šalje na mrežni interface (serijski link, ethernet, …), na koji mu pokazuje default route-a.

Routeri su puno složeniji od Switcheva i imaju posebne routing protokole na osnovu kojih razmijenjujuznanje o dostupnosti određenih lokacija (route-a), njihovoj brzini i sl. Routeri obično povezuju udaljenelokacije (LAN-ove preko WAN mreža). Routeri obično imaju manje portova (mrežnih interface-a), odswitcheva.

Za obradu svakog mrežnog paketa Routeri koriste centralni procesor (CPU), te je zbog toga prosječno

Page 229: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 229/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

vrijeme obrade svakog mrežnog paketa mjereno u milisekundama (ms).

Multilayer Switch

Multi-layer switch-evi su uređaji koji rade na OSI slojevima (Layerima) 2,3 i 4. Dakle prema logici onisu uređaji koji objedinjuju funkcionalnost stndardnih switcheva (Layer 2) i Routera (Layer 3 i 4).

Multi-layer switch-evi mogu odluke o switching-u/routingu odraditi na osnovi :

source/destination MAC adrese u Layer 2 ili

source/destination IP adrese u Layer 3 ili

source/destination porta u Layer 4.

Ono što je specifično za njih je da oni preklapanje (switching) ili usmjeravanje (Routing) paketaodrađuju brzinama koje su inaće moguće samo na Switchevima, i to bez upotrebe centralnogprocesora (CPU). Naime oni ove odluke donose upotrebom tkzv ASIC IC-ova. ASIC (Application SpecificIntegrated Circuit) je IC (“chip”) koji se ovisno o izvedbi i modelu switcha praktično nalazi na svakomportu (interface-u). On je u mogućnosti unutar granica milisekundi: primiti, obraditi i proslijediti svakimrežni paket.

Firewall

Firewalli su uređaji koji se stavljaju između javnih dijelova mreže i unutarnje (zaštićene) mreže.Njihova namjena je blokiranje neželjenog prometa u oba smjera (pr. sa interneta na unutarnju mrežutvrtke i obratno). Oni također rade na Layer 3 nivou i provjeravaju svaki paket koji dođe do njih ali i naLayer 4 (TCP/UDP portovi - dakle prepoznaju protokole) a često znaju filtrirati pakete do nivoaaplikacija (Layer 7). Oni sadrže access liste u kojima se nalaze dozvole za određene IP adrese iprotokole tako da se mogu točno definirati prava pristupa: prema pojedinim IP adresama(141.29.125.5, 141.29.125.55, …), opsegu adresa (141.29.125.*, 141.29.124.*), protokolima (http,ftp, telnet, ntp, …) /portovima (21,23,25,55,78, …), ili nekim drugim kriterijima kome se dozvoljavapristup izvana i to točno na koje računalo/server ili sl. unutar tvrtke i prema van.

Firewalli obično imaju 2 interface –a: Inside i Outside:

Inside i Outside pojmovi podrazumijevaju unutarnje (inside) mrežne priključke kod firewalla, na koje/isu spojena računala ili mrežna oprema koja nije vidljiva ostatku mreže. Outside su mrežni priključcikoji su vidljivi svima na mreži (naravno i na njih se može ograničiti pristup).

Page 230: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

DMZ

DMZ (DeMilitarised Zone) ili demilitarizirana zona je zona koja se nalazi između interneta i intraneta(interneta i tvrtkine unutarnje mreže ). Poslužiteljii i uređaji koji se nalaze unutar te zone imaju maloveća prava pristupa nego da se nalaze na intranetu ali imaju određene restrikcije od i premainternetu, zbog svoje zaštite. Razna oprema se stavlja u DMZ zbog potreba razvoja projekata kojimaje potreban direktan pristup internetu ili za potrebe Web hostinga, E-mail poslužitelja i sl. Dakle u DMZzone čessto se stavljaju Web (http/https) poslužitelji, E-mail poslužitelji, FTP poslužitelji, DNSposlužitelji i sl.

Proxy poslužitelj

Proxy poslužitelji (Server) su uređaji koji se stavljaju nakon Firewalla i Routera prema unutarnjoj mreži(intranetu) te se preko njih računala spajaju na internet. Oni u pravilu imaju access liste u kojima sudefinirane IP adrese računala ili korisnička imena korisnika kojima se dopušta pristup internetu premaodređenim pravilima. Na Proxy poslužitelju se može ograničiti pristup raznim sadržajima nainternetu.Oni također mogu ubrzati pristup internetu snimanjem sadržaja stranica kojima se pristupana internetu, lokalno na disk (Cache-ing Proxy ).

VPN

VPN (Virtual Private Network) su privatne mreže koje se fizički nalaze unutar javnih mreža, kaošto jeinternet. Korištenjem VPN mreže korisnik može sa udaljene lokacije, koja ima pristup internetu, putemVPN-a pristupiti mrežnim resursima svoje tvrtke, kao da je fizički unutar njene mreže. VPN radi takoda se između udaljenog korisnika i tvrtkine mreže (na osnovu logina/lozinke i ključeva) ostvarujekriptirani (šifrirani), tunel kroz koji putuju podaci. Te podatke ne može vidjeti nitko osim dvije stranekoje su otvorile VPN tunel. U globalu razlikujemo 3 tipa VPN-a:

Access VPN: omogućava udaljeni pristup na intranet ili extranet infrastrukturu preko dijeljene●

(share) infrastrukture poput: Dial UP, ISDN, (A/S/H)DSL, Cable modem i sl. na druge udaljenekorisnike ili na intranet/e.Intranet VPN: omogućava pristup preko dijeljene veze, za spajanje više lokacija i omogućava pristup●

samo zaposlenicima unutar korporacijeExtranet VPN: omogućava pristup preko dijeljene veze, za spajanje kompanije partnera na udaljenim●

lokacijama i omogućava pristup vanjskim (engl. External) korisnicima.

Log datoteke

Zbog potrebe za praćenjem stanja raznih komponenti sustava, logiraju odnosno snimaju se određeneaktivnosti na sustavu u tkzv. “log” datoteke. U Linuxu je moguće logirati više-manje sve, na vrlojednostavan način koji se svodi na zapisivanje u neku od za to predviđenih datoteka. Standardno sedatoteke za logiranje nalaze u /var/log/ direktoriju. Većina tih datoteka je u tekstualnom formatu

Page 231: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

2015/01/29 11:54 231/232 Uvod u Linux

Open Source Osijek - https://www.opensource-osijek.org/dokuwiki/

(uz nekoliko iznimki).

Pogledajte kratku listu log datoteka s opisima:

/var/log/messages – sadrži globalne sistemske poruke koje se spremaju od trenutka podizanja●

sustava./var/log/dmesg – sadrži informacija koje proslijeđuje kernel . Ove poruke mogu se vidjeti s naredbom●

dmesg./var/log/boot.log – sadrži informacije koje se logiraju kod podizanja (engl. Boot) sustava tj. podizanja●

svakog pojedinog servisa/daemona tokom podizanja sustava./var/log/lastlog – Prikazuje informacije o zadnjem logiranom korisniku.Naredbom lastlog se može●

vidjeti sadržaj ove datoteke./var/log/maillog – sadrži log informacije mail poslužitelja.●

/var/log/Xorg.x.log – sadrži log informacije o X Window sustavu.●

/var/log/btmp – sadrži informacije o pogrešnim pokušajima logiranja na sustav (! nije u tekstualnom●

formatu !). S naredbom last može se vidjeti formatirana statistika iz ove datoteka , također i sautmpdump /var/log/btmp./var/log/cups – prikazje sve informacije vezane za Printere ili print servis/daemon (CUPS).●

/var/log/anaconda.log – sadrži sve informacije o procesu instalacije Linuxa (za to je zadužen●

servis/daemon “Anaconda”)./var/log/yum.log – sadrži informacije koje logira “YUM” package manager kod instalacije paketa.●

/var/log/cron – sadrži informacije koje zapisuje “cron” servis/daemon.●

/var/log/secure – sadrži sve informacije vezane za sigurnost koje mogu popunjavati razni●

servisi/daemoni : p. SSH daemon ovdje zapisuje sve poruke oko logiranja./var/log/wtmp – sadrži zapise o logiranju na sustav (! nije u tekstualnom formatu !). Naredba who●

čita iz ove datoteke. Sadržaj možemo vidjeti sa : utmpdump /var/log/wtmp.

Primjer Pošaljimo poruku koja će biti vidljiva unutar shell-a te će se zapisati u sistemsku log datoteku/var/log/messages, koju možemo pregledati i s naredbom dmesg. Poruka neka bude ”–TEST–”.

Naredba za ovu namjenu je logger , prekidać -s označava da će osim zapisa u/var/log/messages , poruka bit iprikazana i u shellu (komandnolinijskoj ljusci).

logger -s "--TEST--"

root: --TEST

Provjerimo da li se sve upisalo u sistemsku log datoteku.

tail /var/log/messages

... ... ...

... ... ...Sep 20 17:01:24 Server1 root: --TEST--

Page 232: Uvod u Linux - docshare01.docshare.tipsdocshare01.docshare.tips/files/25886/258869544.pdf · U trenutku nastanka ideje o pokretanju predavanja “Uvod u Linux” nastala je i ideja

Last update: 2015/01/26 15:20 wiki:knjige:uvod_u_linux https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

https://www.opensource-osijek.org/dokuwiki/ Printed on 2015/01/29 11:54

X Window sustav

……………… …… u izradi ……… …………………….

INFO

Predavanja “Uvod u Linux” se uz ostala predavanja najavljuje barem dva tjedna unaprijed, na stranici:

www.opensource-osijek.org/wordpress/dogadanja/

From:https://www.opensource-osijek.org/dokuwiki/ - Open Source Osijek

Permanent link:https://www.opensource-osijek.org/dokuwiki/wiki:knjige:uvod_u_linux

Last update: 2015/01/26 15:20