Korisne Linux naredbe (za malo naprednije korisnike)

Korisne Linux naredbe (za malo naprednije korisnike)

U ovom članku, proći ćemo neke od korisnih Linux naredbi, za malo naprednije korisnike. Samo ćemo kratko nabrojiti korisne naredbe u Linuxu, za malo naprednije korisnike, i to uz samo nekoliko pripadajućih primjera. Na kraju ćete dobiti i PDF dokument, sa svim navedenim naredbama i primjerima upotrebe, koji si možete odštampati (i držati negdje u blizini).

Ako vas možda područja koja ćemo obraditi, zanimaju detaljnije ili se pak želite upoznati s osnovama,  sve to možete pronaći u mojoj online knjizi: Uvod u Linux i Linux napredno, objavljenoj unutar inicijative Open Source Osijek,a koju možete slobodno koristiti.

 

Dolje u tekstu, obraditi ćemo tri područja Linuxa:

  • Mrežni (pod)sustav
  • Diskovni sustav
  • Linux sustav općenito

 

 

 

Mrežni podsustav

Za rad u mrežnom sustavu odnosno s mrežom, dostupno je nekoliko osnovnih naredbi.

 

ifconfig

Ova naredba, dolazi u paketu net-tools , koji u novijim distribucijama Linuxa nije više standardno instaliran, ali ga naravno možete instalirati. U ovom paketu dolazi cijeli niz naredbi, poput:

  • hostname
  • domainname
  • netstat
  • arp
  • ifconfig
  • ipmaddr
  • route

S ovom naredbom možete ispisati konfiguraciju svih mrežnih sučelja (eth0, eth1, …) ali ih možete i konfigurirati.

Ispis konfiguracije svih mrežnih sučelja:

eth0 Link encap:Ethernet HWaddr 08:00:27:EC:C0:1A
     inet addr:192.168.1.170 Bcast:192.168.1.255 Mask:255.255.255.0
     inet6 addr: fe80::a00:27ff:feec:c01a/64 Scope:Link
     UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
     RX packets:43 errors:0 dropped:0 overruns:0 frame:0
     TX packets:43 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:1000
     RX bytes:6805 (6.6 KiB) TX bytes:6913 (6.7 KiB)

lo Link encap:Local Loopback
   inet addr:127.0.0.1 Mask:255.0.0.0
   inet6 addr: ::1/128 Scope:Host
   UP LOOPBACK RUNNING MTU:65536 Metric:1
   RX packets:0 errors:0 dropped:0 overruns:0 frame:0
   TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
   collisions:0 txqueuelen:0
   RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

 

 

 

Primjerice, konfigurirajmo mrežnu karticu eth0 ,s IP adresom: 192.168.100.100 i maskom mreže: 255.255.255.0

ifconfig eth0 192.168.100.100 netmask 255.255.255.0

 

Isto tako, možemo mrežno sučelje uključiti ili isključiti:

ifconfig eth0 up

ili

ifconfig eth0 down

 

S ovom naredbom možemo i uključiti ili isključiti podršku za multicast, na pojedinom mrežnom sučelju (pr. eth0)

Uključivanje multicast podrške (standardno je uključeno):

ifconfig eth0 multicast

 

Isključivanje podrške za multicast

ifconfig eth0 -multicast

 

 

 

ip

Druga naredba, slična ifconfig ,koja u novije vrijeme dolazi standardno s linuxom, odnosno dolazi u paketu iproute  ili iproute2 . Ova naredba objedinjuje više naredbi iz starijeg paketa net-tools . U ovom (iproute2) paketu dolazi i cijeli niz drugih naredbi za mrežu, poput:

  • ip
  • nstat
  • ss
  • bridge
  • tc
  • lnstat
  • cbq

S ovom naredbom također možete i ispisati i mijenjati konfiguraciju mrežnih sučelja. Pogledajmo kako ispisati konfiguraciju svih mrežnih sučelja:

ip addr show

Dobiti ćemo malo drugačije (nepreglednije) izlistanje konfiguracije:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:ec:c0:1a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.170/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::a00:27ff:feec:c01a/64 scope link
    valid_lft forever preferred_lft forever

 

 

Naredba ip  radi na nižoj razini od naredbe ifconfig , pa se s toga s njom mogu vidjeti stvari koje naredba ifconfig  ne može prikazati, poput višestrukih IP adresa na pojedinom mrežnom sučelju (ako imate takvu konfiguraciju mreže – koju recimo koriste protokoli za mrežnu redundaniju na OSI sloju 3).

Konfigurirajmo mrežno sučelje eth0, s istom IP adresom kao gore:

ip addr add 192.168.100.100/24 dev eth0

 

S ovom naredbom također možemo podizati ili spuštati mrežno sučelje.

Podizanje odnosno uključivanje (eth0):

ip link set eth0 up

 

Gašenje odnosno spuštanje (eth0):

ip link set eth0 down

 

Možemo i vidjeti koje multicast ip adrese su pridružene kojem mrežnom sučelju:

ip maddr

Dobiti ćemo, nešto poput ovoga:

1: lo
    inet 224.0.0.1
    inet6 ff02::1
2: eth0
    link 33:33:ff:ec:c0:1a
    link 01:00:5e:00:00:01
    link 33:33:00:00:00:01
    inet 224.0.0.1
    inet6 ff02::1:ffec:c01a
    inet6 ff02::1

 

Dodatno, moguće je i dodavati multicast adrese (dodjeljivati ih mrežnom sučelju) ili ih brisati.

Dodavanje (pr. izmišljena multicast adresa 239.100.1.35 ) na mrežno sučelje eth0:

ip maddr add 239.100.1.35 dev eth0

Ili brisanje iste multicast adrese s mrežnog sučelja eth0:

ip maddr del 239.100.1.35 dev eth0

 

 

Te izlistati ili mijenjati routing tablicu.

Izlistanje routing tablice:

ip route

Pri čemu bi dobili nešto poput ovog izlistanja:

192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.170
169.254.0.0/16 dev eth0 scope link metric 1002
default via 192.168.1.1 dev eth0

 

Kao i dodavati ili brisati route.

Dodavanje route (riječ add ), za mrežu: 192.168.200.0/24 , preko routera: 192.168.100.1 , i to preko mrežnog sučelja eth0 :

ip route add 192.168.200.0/24 via 192.168.100.1 eth0

Za brisanje route se koristi riječ del, umjesto add.

 

 

 

netstat

Naredba netstat , daje nam razne statistike mrežnih sučelja a dolazi u gore navedenom paketu. Ona dolazi sa starijim paketom net-tools .

Pogledajmo i neke od primjera. Pogledajmo statistike za sva mrežna sučelja:

netstat -i

Dobili bismo nešto poput ovoga:

Slika

Opis:

  • Iface  – je mrežno sučelje
  • MTU  – je MTU (Maximum Transmission Unit )  – max. veličina paketa mrežnog sučelja
  • RX-OK  – su ispravnio primljeni paketi
  • RX-ERR,OVR ili DRP  su neispravno primljeni ili odbačeni paketi
  • TX-OK  – su ispravno poslani paketi
  • TX-ERR,OVR ili DRP su neispravno poslani ili odbačeni paketi

Ako želimo više statističkih detalja, možemo koristiti i -s :

netstat -s

Na što bi dobili detaljnije statistike o poslanim i primljenim paketima kao i onima s greškom, poput ovoga na slici:

Slika

 

Ispišimo sve route (routing tablicu i default gateway), i to brojčano (-n ):

netstat -rn

Pri tome bi dobili nešto poput ovog ispisa:

Slika

 

Ispišimo pripadnost Multicast grupama, i to brojčano (-n ):

netstat -gn

Pogledajmo i kako to izgleda:

Slika

Ovdje vidimo kako je multicast IP adresa: 224.0.0.1 dodjeljena mrežnom sučelju eth0, koje je ovdje naše primarno mrežno sučelje. To znači kako je multicast aktivan jer je ovo multicast IP na koju moraju odgovoriti svi multicast uređaji (prema definiciji rada multicast mrežnih sučelja).

 

Ispišimo sve mrežne konekcije (TCP i UDP, brojčano), stanja veza i timere (ako se radi o TCP vezama), kao i programe (daemone/servise) koji su odgovorni za neki servis/mrežni protokol:

netstat -tunaop

Opis prekidača:

  • -n  – prikaži numerički, bez prepoznavanja mreža ili portova/servisa
  • -u  – prikaži UDP konekcije_

_ * -t  – prikaži TCP konekcije * -a  – prikaži sve konekcije * -g  – prikaži sve multicast adrese te s kojim mrežnim sučeljima su povezane * -o  – prikaži i timere (vremenska stanja) TCP konekcija * -p  – prikaži i proces/program/daemon koji je pokrenuo servis i otvorio konkretni port * -s  – prikaži detaljne statistike

Pogledajmo kako bi izgledao ispis gornje naredbe – ovaj testni poslužitelj ima samo par servisa/portova: ssh(22), telnet(23), web(80) i bootp (68):

Slika

Što ovdje vidimo:

  • Proto  je protokol (TCP ili UDP)
  • Local Address  je lokalna IP adresa poslužitelja i pripadajući otvoreni PORT
  • Foreign Address  je adresa udaljenog računala i PORT, za ovu konekciju (jedna konekcija tj. session – jedan red)
  • State  je stanje veze
  • PID/Program name  je ime Linux programa/procesa i njegov PID (Process ID)
  • Timer  je polje za trenutno stanje svakog TCP sessiona (njegovog timera)

 

 

 

nstat

Naredba nstat , je naredba slična naredbi netstat  ali nam može dati puno više statističkih informacija o konekcijama, a dolazi u paketu iproute .

Pogledajmo sve detaljne statistike (prema svim podvrstama paketa) – slično kao netstat -s  ali puno detaljnije. Koristiti ćemo prekidač -a , kako bi vidjeli apsolutne vrijednosti brojača  :

nstat -a

Pogledajmo ispis:

Slika

 

ss

Naredba slična naredbi netstat je naredba ss  (socket statistics), koja dolazi u paketu iproute .

Pogledajmo (izlistajmo sve konekcije):

ss

Dobiti ćemo samo aktivne veze (s gore navedenog testnog servera, na koji gotovo ništa osim SSH nije spojeno):

Slika

Pogledajmo stanja svih otvorenih mrežnih konekcija:

ss -nmp

Opis prekidača:

  • -n  – prikaži numerički, bez prepoznavanja mreža ili portova/servisa
  • -m  – prikaži socket memory info
  • -p  – prikaži i proces/program/daemon koji je pokrenuo servis i otvorio konkretni port
  • -t  – prikaži _TCP konekcije

_ * -u  – prikaži UDP konekcije * -o state established  – prikaži sve konekcije u stanju ESTABLISHED

Pogledajmo kako pronači sve konekcije koje su ostvarene (u TCP stanju ESTABLISHED ) i to samo za SSH protokol. Dodati ćemo filter za dolazni SSH i odlazni SSH protokol:

ss -o state established '( dport = :ssh or sport = :ssh )'

Dobiti ćemo nešto poput:

Recv-Q Send-Q        Local Address:Port      Peer Address:Port
 0      192          192.168.1.170:ssh       192.168.1.164:8577    timer:(on,354ms,0)

 

 

Napomena: TCP konekcije, općenito mogu biti u slijedećim stanjima:

  • CLOSE_WAIT
  • CLOSED
  • ESTABLISHED
  • FIN_WAIT_1
  • FIN_WAIT_2
  • LAST_ACK
  • LISTEN
  • SYN_RECEIVED
  • SYN_SEND
  • TIMED_WAIT

 

 

ethtool

Naredba ethtool , dolazi ili standarno ili ju treba instalirati u paketu ethtool . Ona nam omogućava razne promjene stanja rada mrežnih sučelja, poput promjene brzine rada (10/100/1000 Mbps) te duplex načina rada (full/half), kao i uključivanja ili isključivanja raznih funkcionalnosti mrežnih kartica (poput nekih akceleriranih funkcija i slično).

Pogledajmo informacije o hardveru mrežnog sučelja (kartice) eth0 . Dakle ovdje ćemo vidjeti koji kernel modul (upravljački program) je zadužen za navedenu karticu, koju kartica ima verziju firmware-a i slično:

ethtool -i eth0

Pogledajmo ispis:

Slika

Vidljivo je:

  • driver (kernel modul) za našu Intelovu mrežnu karticu (chip: 82573L) je e1000e
  • vidimo i verziju drivera: 2.3.2.-k
  • … i ostale detalje, poput sabirnice na koju je spojen (09:00.00), …

Da je recimo driver pisan (razvijan) i kompiliran s podrškom za NAPI, to bi bili vidljivo kao na ovom e1000  driveru, u polju version – verzija bi obično završavavala s  -NAPI  (Pogledajte knjigu “Uvod u Linux i Linux napredno”: Poglavlje: Interrupt moderation)

Slika

 

S ovim programom također možemo vidjeti i statistike mrežnih paketa, na najnižoj razini mrežne kartice (sučelja):

ethtool -S eth0

Pogledajmo kako izgledaju ove statistike (izrezali smo samo dio statistika):

Slika

 

Sada ćemo vidjeti i koje sve hardverski akcelerirane funkcionalnosti (offload) naša mrežna kartica (sučelje) eth0  ima:

ethtool --show-offload eth0

Pogledajmo što smo dobili:

Slika

Dakle vidimo koje su akcelerirane funkcije, koje mrežna kartica ima, uključene (ON) odnosno koje su isključene (OFF) te koje se ne mogu promijeniti [fixed].

 

 

U slijedećem primjeru uključiti ćemo TX i RX checksumming offload na drugoj mrežnoj kartici (eth1):

ethtool --offload eth1 rx on tx on

 

 

 

ifstat

Program ifstat , ponekada (ovisno o distribuciji Linuxa), moramo i instalirati – dolazi u paketu ifstat . On nam daje osnovne statistike prometa (dolazni i odlazni) o svim mrežnim sučeljima, u realnom vremenu, kako novi paketu dolaze. Pokrenimo ga:

ifstat

Pogledajmo kako to izgleda:

Slika

Iz programa se izlazi sa CTRL  + c

 

 

Naredbe za praćenje mrežnog prometa

Vidjeti ćemo dvije naredbe, s kojima možemo pratiti mrežni promet u realnom vremenu. Dakle za pojedino mrežno sučelje (mrežnu karticu), možemo vidjeti koliko prometa prolazi kroz nju.

 

iftop

Naredbu iftop , potrebno je instalirati, dolazi u paketu iftop . S njom možemo pratiti promet na pojedinom mrežnom sučelju, bilo da se radi o fizičkom poput: eth0, eth1, eno1 … ili logičkom – primjerice: eth0.10 , bond0, bond0.10, … .

Pogledajmo kako pratiti promet na mrežnom sučelju bond0 (agregacija/team/bond):

iftop -i bond0

Pogledajmo kako to izgleda, u trenutku kada smo kopirali datoteku s računala 192.168.1.254 => (na) => 192.168.1.164:

Slika

Vidljivo je kako je vršna brzina bila 574Mbps – mjereno sa strane poslužitelja (192.168.1.254), pa je to njegovo slanje (TX) te kako je najniža brzina bila 220Mbps a onda je varijrala između 560Mbps i 562Mbps.

Iz programa se izlazi s tipkom Q

 

 

iptraf-ng

Program iptraf-ng je vrlo sličan prethodnom programu. Instalira se u paketu iptraf-ng . Postoji i starija verzija ovog programa a zove se iptraf  (IP Traffic)

Program možemo pokrenuti s menijem:

iptraf-ng

To izgleda ovako:

Slika

Ako odaberemo: IP traffic monitor, možemo odabrati mrežno sučelje : eth0, eth1, … koje već imamo i pratičme se osnovna statistika TCP/UDP

 

Ako odaberemo “General Interface Statistic” dobiti ćemo opću statistiku prometa, poput ove na slici:

Slika

U prethodni meni se izlazi sa X

Ako pak odaberemo “Detailed interface statistics” te odaberemo željeno mrežno sučelje, dobiti ćemo malo detaljniju statistiku mrežnog prometa, poput ove na slici:

Slika

I na kraju imamo i konfiguraciju detalja, pod “Configure

 

 

Pogledajmo kako pratiti promet na mrežnom sučelju eth0:

iptraf-ng -i eth0

Ili za pokretanje odmah u detaljniju statistiku u realnom vremenu:

iptraf-ng -d eth0

 

Iz programa se izlazi s tipkom Q

Kako ste i vidjeli, ovaj program nudi nam znatno više opcija i filtera, u praćenju paketa koji prolaze kroz mrežno sučelje.

 

 

iperf

Program iperf , koristi se za mjerenje propusnosti mreže. Postoje razne verzije odnosno generacije ovog programa (iperf , iperf2  iperf3 ). Mi žemo koristiti iperf. On radi prema principu u kojemu je jedna strana (pr. računalo A)  poslužitelj a druga strana (pr. računalo B) klijent.

 

Zamislimo ovakav scenarij:

Računalo A : 192.168.1.254   –> (biti će poslužitelj)

Računalo B: 192.168.1.170    –>  (biti će klijent)

 

Na računalu A (poslužitelj), pokrećemo:

iperf -s

Na strani koja je poslužitelj to inicijalno izgleda ovako:

Slika

Na računalu B (klijent), pokrećemo:

iperf -c 192.168.1.254

Na klijentu to izgleda ovako:

Slika

Ovo je osnovni TCP test, iz kojega je vidljivo, kako je klijentska strana prema poslužiteljskoj generirala promet te smo dobili propusnost mrže od 938 Mbps, koji je poslužitelj uredno zaprimio. Test je trajao 10 sekundi (što se može mijenjati). Ovaj program koristi samo CPU, RAM memoriju i mrežno sučelje, što je vrlo važno za što bolje generiranje i/ili primanje mrežnih paketa.

Konkretan test je pokazao kako je mreža između ova dva računala nesumnjivo u stanju raditi na brzini 1Gbps.

 

 

Program podržava i razne druge opcije i parametre

 

 

lsof

Naredba lsof  daje nam listu svih otvorenih datoteka na Linux sustavu. Pošto su na Linux/Unix sustavima i file deskriptori datoteke (doduše posebne), a oni se koriste i u mrežnoj komunikaciji, upotreba u ovom poglavlju o mrežnom sustavu je jasna.

Pogledajmo kako pomoću izlistavanja file descriptora, možemo pronaći mrežne konekcije.

 

Pronađimo tko sve ima otvoren mrežni port 22 (ssh):

lsof -i :22

To bi izgledalo ovako nekako:

Slika

Što je vidljivo:

  • COMMAND je naredba odnosno daemon (servis)
  • PID je Linux Process ID od procesa
  • USER je korisnik koji je pokrenuo daemon
  • FD je File Deskriptor broj
  • TYPE označava vrstu File deskriptora (ovdje je to IPv4), može biti i REG (File), DIR (direktorij), FIFO(posebni first in first oute device) ili CHR (character device)
  • DEVICE je uređaj (za normalne uređaje je to MAJ,MIN broj) za mrežne uređaje je to poseban identifikator. Za MAJor i MINor brojeve uređaja pogledajte knjigu: “Uvod u Linux i Linux napredno“, Poglavlje: Uređaji ukratko – nadalje.
  • SIZE/OFFSET je veličina ili offset datoteke, za file deskriptore koji predstavljaju mrežnu konekciju, ona je nula (0t0)
  • NODE je oznaka file deskriptora u INODE tablici
  • NAME je ime otvorene datoteke:
    • poput izvršne datoteke ili biblioteke,
    • posebne datoteke (pr. /dev/null)
    • ili mrežna konekcija, u nekom od njenih stanja

U prva dva reda ispisa od gore, vidljivi su SSH servisi (jedan za IPv4 i jedan za IPv6).

U trećem redu vidimo ostvarenu SSH konekciju (stanje ESTABLISHED), u zadnjem stupcu je prvo lokalni SSH poslužitelj  (192.168.1.170) i veza prema udaljenom SSH klijentu (192.168.1.164), kao i lokalni port (22-SSH) i port na udaljenom računalu/klijentu: 9926

 

Možemo koristiti i naprednije pretraživanje, prema stanju konekcije.  Potražimo sve TCP konekcije u stanju ESTABLISHED (otvorene):

lsof -i -sTCP:ESTABLISHED -n

U istom slučaju ćemo dobiti:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1235 root 3u IPv4 9240 0t0 TCP 192.168.1.170:ssh->192.168.1.164:9926 (ESTABLISHED)

 

 

ping

Program ping , koristi se provjeru dostupnosti računala na mreži, pod slijedećim uvjetima:

  • da je udaljeno računalo koje testiramo aktivno i ima IP adresu, te da je dostupno s računala koje testiramo i
  • da udaljeno računalo nema firewall ili da je on konfiguriran da propušta ping odnosno ICMP pakete (koje ping naredba šalje)

 

Ova naredba mjeri i vrijeme koje je bilo potrebno da paket stigne od izvora do odredišta.

Provjerimo dostupnost računala: 192.168.1.1:

ping 192.168.1.1

Naredba ping pod linuxom, šalje pakete svake sekunde, konstantno, pa ju moramo prekinuti sa CTRL  + C

Moguće je i poslati samo određeni broj paketa, u primjeru ćemo ih poslati samo pet (5):

ping -c 5 192.168.1.1

Dobiti ćemo nešto poput ovoga:

Slika

Vidljivo je:

  • kako su se slali paketi veličine 64 bytea, koji su i zaprimljeni nazad (što je normalno)
  • kako je vrijeme potrebno da paket dođe do odredišnog računala u prosjeku bilo 0.377 ms (milisekundi)
  • kako je poslano 5 paketa i primljeno 5, što je dobro (može se dogoditi, za neka udaljena računala ili u nekim drugim situacijama, da se prvih par paketa izgubi)
  • vrijeme potrebno da se paket primi/pošalje: i to minimalno, prosječno i maksimalno te mdev (prosječno RTT vrijeme paketa)

 

 

traceroute

Program traceroute  (trace route), radi slično kao naredba ping , čak i koristi ICMP protokol ali s malo drugačijim opcijama od naredbe ping. Naime ovaj program može snimati sve usmjerivače kroz koje paket putuje od izvora do odredišta te zapisivati vrijeme potrebno da paket dođe od nas do njih. Sve pod uvjetom da to pojedini usmjerivači (routeri) podržavaju. Oni usmjerivaču koji to ne podržavaju, jednostavno neće dati odgovor, i biti će zapisani samo oni koji to dozvoljavaju.

Na nekim linuxima ovaj program nije dostupan ali se može instalirati u paketu traceroute .

Sličan program dolazi u paketu iputils , a zove se tracepath .

 

Ova naredba mjeri pristupna vremena do svih usmjerivača, kroz koje paket prolazi do odredišta

Zamislimo slijedeću mrežu:

 

PC-A —-( Usmjerivač-1)—-(Usmjerivač-2)—-(Usmjerivač-3)—-PC-B [192.168.100.101]

S računala PC-A, bi trebali pokrenuti:

traceroute 192.168.100.101

Kao odgovor ćemo dobiti prolazna vremena od našeg računala do svakog pojedinog uređaja u prolazu (usmjerivača), pojednostavljeno, poput:

Usmjerivač-1  :  1 ms
Usmjerivač-2  :  5 ms
Usmjerivač-3  :  7 ms
PC-B          :  9 ms

Pogledajmo konkretan primjer, traceroute prema adresi (poslužitelju) google.com:

traceroute google.com

Dobiti ćemo nešto poput navedenog ispisa

 

traceroute to google.com (172.217.23.142), 30 hops max, 60 byte packets

1 192.168.1.11 (192.168.1.1) 0.031 ms 0.010 ms 0.008 ms                                    
2 * * *
3 10.51.192.1 (10.51.192.1) 1.296 ms 1.273 ms 1.338 ms
4 10.10.4.17 (10.10.4.17) 5.794 ms 5.901 ms 6.015 ms
5 10.10.0.29 (10.10.0.29) 6.003 ms 5.732 ms 5.858 ms
6 10.50.0.145 (10.50.0.145) 6.045 ms 10.50.0.205 (10.50.0.205) 5.685 ms 10.50.0.73 (10.50.0.73) 5.649 ms
7 10.50.0.146 (10.50.0.146) 376.375 ms 376.417 ms 376.393 ms
8 212.92.223.254 (212.92.223.254) 6.496 ms 6.484 ms 6.528 ms
9 dh120-25.xnet.hr (83.139.120.25) 6.750 ms 6.769 ms 6.716 ms
10 * * *
11 lg35-9073.as8447.a1.net (195.3.64.129) 18.750 ms 17.814 ms 17.785 ms
12 lg1-1171.as8447.a1.net (195.3.64.2) 25.654 ms 25.865 ms 25.609 ms
13 72.14.202.36 (72.14.202.36) 25.452 ms 29.258 ms 29.222 ms
14 * 108.170.251.193 (108.170.251.193) 22.495 ms 22.814 ms
15 216.239.54.61 (216.239.54.61) 22.491 ms 22.477 ms 216.239.54.63 (216.239.54.63) 23.637 ms
16 fra16s18-in-f142.1e100.net (172.217.23.142) 25.826 ms 23.412 ms 23.343 ms

Važno je razumjeti kako traceroute  šalje tri paketa prema svakom od usmjerivača u nizu do odredišta, pa su za svaki od njih vidljiva (ili ne) i tri odgovora odnosno pripadajuća vremena odgovora.

Opis:

  • 1 je naš usmjerivač (192.168.1.1) i vremena u ms do njega
  • 2 je usmjerivač koji ne odgovara na ICMP poruke
  • 3 je prvi slijedeći u nizu usmjerivača koji je odgovorio (10.51.192.1) i vremena u ms do njega
  • … slijede ostali usmjerivači koji odgovaraju (*****)
  • … jedan od “čudnih”  je trenutno broj 7, kojemu je vrijeme odgovora bilo oko 370ms, što ne znači da je stvarno paketu trebalo toliko vremena, već je trenutno taj usmjerivač preopterećen te je odgovaranje na ICMP pakete stavio u niži prioritet,u odnosu na stvarni mrežni promet
  • i na kraju – broj 16 (172.217.18.14) je naš traženi google-ov server

 

 

Programi za skeniranje mreže i analizu mrežnih paketa

 

nmap

Program nmap  (Network Mapper) napravljen je za sigurnosno skeniranje pojedinih računala na mreži ili cijele mreže. On je u mogućnosti provjeriti koji su sve otvoreni portovi, ito TCP ili UDP, na nekom računalu, te dodatno saznati koji servis i verzija servisa se pokreće na tom portu. Kako bi to uopće mogao, on šalje posebno kreirane mrežne pakete, na osnovu čijeg odgovora uspijeva dobiti više informacija o računalu i portu koji skenira. Nadalje ovaj program ima i dodatne ekstenzije za mnoge protokole, kao i mogućnost skriptiranja tih ekstenzijja pa pomoću njih može saznati još znatno više o odredišnom računalu/portu/servisu koji skenira.

 

Ovaj program podržava na desetke metoda skeniranja a postoje i stotine raznih opcija i parametara. Mi ćemo proći kroz samo par primjera.

Ping scan računala na mreži 192.168.100.0 / 24  (255.255.255.0), koji će samo na osnovi odgovora na ping pakete (ICMP) pronalaziti živa računala na mreži:

nmap -sP 192.168.100.0/24

 

Malo kompleksniji sken, koji skenira TCP portove od 1 od 65535, pomoću slanja TCP SYN paketa (-sS ) na cijelu IPv4 mrežu 192.168.100.0 /24. Dodatno opcija -sV  skenira i verziju servisa/daemona na otvorenim portovima:

nmap -p 1-65535 -sV -sS 192.168.100.0/24

Sada pokrenimo i sken TCP i UDP protokola, za gore navedene portove:

nmap -p 1-65535 -sV -sU -sS 192.168.100.0/24

Skeniraj samo jednu IP adresu (192.168.100.101), pomoću TCP ACK “pinga“:

nmap -PA 192.168.100.101

 

 

tcpdump

Program tcpdump  obično dolazi instaliran sa svim distribucijama Linuxa. Ako to ipak nije slučaj, možete ga instalirati u paketu imena tcpdump . Ovaj program u standardnom načinu rada prebacuje mrežnu karticu u takozvani “promiscuous mode” odnosno način rada, u kojemu mrežna kartica prima i mrežne pakete koje inače ne bi primila, pa se tako mogu dohvatiti svi mreži paketi koji su došli do vaše mrežne kartice.

Ovaj program ima nekoliko osnovnih i podosta naprednih opcija i prekidača. MI ćemo pokazati samo njih par.

 

Snimimo sve mrežne pakete koji su nam došli na mrežnu karticu eth0:

tcpdump -i eth0

Iz programa (u tijeku snimanja mrežnih paketa, izlazi se sa CTRL  +  c

**

Na mrežama koje su prilično opterećene, odnosno na kojima ima puno prometa prema našoj mrežnoj kartici, dobro je filtrirati samo željeni promet, poput porta. FIltrirajmo samo pakete koji su namjenjeni portu 80 (HTTP), s time da portove vidimo brojčano (-n ):

tcpdump -i eth0 port 80 -n

Pogledajmo i snimanje prometa za SSL/TLS (https):

tcpdump -i eth0 port 443 -n

I kako to izgleda (prekinuli smo snimanje nakon par paketa):

Slika

 

Možemo dodatii i filter na promet sa ili od određenog računala, primjerice prema ili od IP adrese (192.168.1.254). Uključiti ćemo i logički AND uvjet, konkretno:  i host (IP 192.168.100.101) i PORT 80:

tcpdump -i bond0 'host 192.168.100.101 and port 80' -n

Kako smo rekli mogući su i znatno kompleksniji filteri i opcije.

Još jedna korisna opcija odnosno prekidač je -vv , koji daje još detaljniji ispis odnosno opis svakog paketa.

 

 

tshark

Program tshark , doalzi u paketu wireshark  i on je praktično identičan GUI programu wireshark, samo što je namjenjen za izvršavanje iz _shell_a. Ova jprogram ima na tisuće opcija i filtera koje možemo koristiti za prikaz i filtriranje mrežnih paketa. Onm kao i tcpdump postavlja mrežnu karticu u “promiscuous mode“. Pojam “packet capture” je procedura dohvaćanja paketa, koji se veže uz programe ove vrste.

 

Pokrenimo snimanje mrežnih paketa na mrežnom sučelju eth0:

tshark -i eth0

Možemo i filtrirati pakete, na samo one koji dolaze ili su namjenjeni portu 80:

tshark -i eth0 port 80

I naravno proširiti filter, samo za one pakete koji dolaze ili odlaze prema odeđenom računalu (hostu) – pr. 192.168.100.101

tshark -i eth0 port 80 host 192.168.100.101

 

Moguće je koristiti i logičke operatore, poput AND ili OR:

tshark -i eth0 port 80 and host 192.168.100.101

Dakle kako bi u gornjem primjeru filtrirali sve one pakete koji dolaze ili odlaze s porta 80 i (AND) koji su istovremeno poslani od ili namjenjeni računalu 192.168.100.101

 

Naravno s prekidačem -w , sve možemo i snimiti u datoteku (u našem slučaju, datoteka će se zvati: mrezni-paketi.pcap).

tshark -i eth0 port 80 and host 192.168.100.101 -w mrezni-paketi.pcap

 

Iz programa, u tijeku snimanja mrežnih paketa, izlazi se za CTRL  + **c

**

 

 

 

 

 

 

 

Diskovni podsustav

 

atop

Naredba atop , uglavnom ne dolazi instalirana, pa ju je potrebno instalirati. Dolazi u paketu atop . Ova naredba se ponaša slično kao i naredba top  ali nam daje znatno više mogućnosti i detalja. Dakle s ovom naredbom možemo inreraktivno pratiti zauzeće sustava: od diskovnog sustava, mrežnog sustava, pokrenutih programa/procesa i slično, prema zauzeću CPUa, RAM memorije ili mreže. Prikaz je podjeljen u dva dijela:

Gornji prikazuje generalno opterećenje sustava: CPU i RAM te opterečenje prema diskovima ili particijama te mrežnim sučeljima. Donji dio prikaza prikazuje pokrenute programe (procese) te informacije o njima: koliko CPUa ili RAM memorije zauzimaju trenutno, te koliko je pojedini proces  do sada zapisivao ili čitao s diska.

 

Slika

 

 

ioping

Program ioping  služi za testiranje brzine pristupa disku i prijenosa podataka s istog. Potrebno je instalirati paket ioping . Moguće je testirati razne metode pristupanja disku, poput:

  • -A  ovo je asinkrona metoda pristupa disku
  • -C  je standardna Cache metoda pristupa, koja koristi linux disk cache memoriju
  • -D  je direct I/O  metoda bez cache memorije, pristupa se disku pomoću DMA ako je moguće
  • -Y  je klasična sinkrona metoda pristupa disku, u kojoj se čeka da su podaci ali i metapodaci stvarno zapisani na površinu diska
  • -y  je sinkrona metoda pristupa disku, u kojoj se čeka da su podaci stvarno zapisani na površinu diska, bez čekanja da se snime i metapodaci

Primjer testiranja vremena prostupa disku na kojem se nalazimo i to u 12 prolaza (pokušaja testitanja):

ioping -c 12 .

Testirajmo i asinkroni pristup, isto 12 puta:

ioping -A -c 12 .

Ili isti test za disk /dev/sdb :

ioping -c 6 -A /dev/sdb

 

iotop

Program iotop , daje nam prikaz programa/procesa, prema opterećenju diskovnog sustava (I/O operacije). Ovaj program je obično potrebno instalirati, jer dolazi u paketu iotop .

Standardno, potrebno ga je samo pokrenuti:

iotop

Pogledajmo kako to izgleda:

Slika

Za svaki program/proces vidimo koliko operacija čitanja (DISK READ), zaipisivanja (DISK WRITE), swap – ako se koristi (SWAPIN) te koliki postotak procesorskog vremena se gubi na  I/O operacije prema diskovnom sustavu. Standardno su programi/procesi poredani prema postotku zauzeča CPUa s I/O operacijama.

Program možemo pokrenuti i na način u kojem se u realnom vremenu prikazuju samo oni programi/procesi koji trenutno koriste diskovni sustav, odmnosno ako nešto čitaju ili zapisuju na diskovni sustav:

iotop --only

 

Postoji i nekoliko korisnih tipki koje možemo stisnuti tijekom rada ovog programa:

  • r  – (reverse) ako želimo obrnuti poredan programa/procesa
  • o  – (only) ako želimo vidjeti samo one diskovno aktivne programe/procese
  • a  – prikazuje akumulirani I/O odnosno koliko I/O operacija je pojedini program/proces odradio sumarizirano do sada

Iz programa se izlazi sa tipkom q .

 

 

fdisk i cfdisk

Program fdisk , koristi se za particioniranje diskova, prema MBR shemi, uz sva njena ograničenja odnosno maksimalnu veličinu particije od 2 TB (između ostaloga). Standardno ovaj program pozivamo s oznakom diska koji želimo particionirati. Ako se primjerice radi o disku /dev/sda , tada će to biti:

fdisk /dev/sda

Dalje pratite proceduru za izradu particije, koju sada nećemo objašnjavati.

program fdisk ima i jedan vrlo koristan prekidač pomoću kojega možete na brzinu vidjeti ispisane sve particije na svim diskovima:

fdisk -l

 

Program cfdisk  je frontend za fdisk, s ASCII grafikom, koji dolazi u paketu s prethodnim programom, unutar paketa util-linux .

cfdisk  pozivamo isto s navedenim diskom koji želimo particionirati (pr. /dev/sdc):

cfdisk /dev/sdc

Pogledajmo kako to izgleda:

Slika

Za upute kako particionirati disk pogledajte knjigu Uvod u Linux i Linux napredno: Poglavlje: Rad s particijama.

 

 

U slučajevima kada imamo veće diskove od 2TB, MBR shema particioniranja nije više zadovoljavajuća te je potrebno disk inicijalizirati i particionirati pomoću GPT sheme particioniranja, za što su nam potrebni drugi programi, upoznajmo se s njima.

 

gdisk i cgdisk

Program gdisk  je sličan programu fdisk  osim što on radi s GPT particijama, a cgdisk  je ASCII GUI za gdisk . Obično je potrebno instalirati paket gdisk , kako bi dobili oba programa.

Particioniranje s oba programa je praktično identično kao i sa prethodna dva, uz istu napomenu, kako su oni namijenjeni za rad s  GPT particijskom shemom.

 

df i du

Programi df  i du  daju nam informacije o zauzeću datotečnih sustava ili direktorija.

df  (disk free) nam daje ispis zauzeća mountanih  datotečnih sustava, pokrećemo ga s (-h daje ljudski prihvatljiv ispis: kB,MB,GB,TB):

df -h

Pogledajmo kako izgleda jedan ispis:

Datotečni sustav   —- VELIČINA ——ISKORIŠTENO—–DOSTUPNO—U UPOTREBI—-MOUNT-ano kao

Slika

 

Naredba du  (disk usage) nam prikazuje zauzeće direktorija. Pogledajmo koliko zauzimaju svi direktoriji i poddirektoriji, počevši od /root/:

du -h /root/

Pogledajmo kako to izgleda na našem računalu:

Slika

Na kraju vidimo sumarizirano (zbroj), koji govori kako svi direktoriji i poddirektoriji (sve datoteke u njima) zajedno zauzimaju 69 MB.

Ako pak želimo samo sumarizirano vrijednost svih poddirektorija, tada možemo naredbu pozvati s prekidačem -s :

du -hs /root/

 

 

mount

Naredba mount , koristi se kako za mountanje novih datotečnih sustava u direktorij, tako i za prikaz već mountanih sustava.

Ispišimo što je sve mountano:

mount

Dobiti ćemo nešto poput:

Slika

Možemo sve zajedno lijepo formatirati:

 

mount | column -t

Pogledajmo kako sve sada izgleda:

Slika

Dakle vidimo koje particije (1 stupac), s kojim datotečnim sustavom (5 stupac) se mountaju u koji direktorij (3 stupac), i dodatno s kojim opcijama i ovlastima (6 stupac).

Ako smo primjerice mijenjali unos u datoteci /etc/fstab, moguće je automatski napraviti remount bez restarta sustava:

mount -a

Naravno moguće je napraviti i ručni mount. Ako imamo recimo particiju /dev/sdb1 koju smo formatirali s ext4 datotečnim sustavom i želimo ju mountati u direktorij /DISK :

mount -t ext4 /dev/sdb1 /DISK

 

 

lsscsi

Naredba lsscsi , koristi se izlistanje svih SATA/SAS/SCSI uređaja i njihovih atributa.

Naredbu možemo pozvati ovako:

lsscsi

Pogledajmo ispis na VirtualBox virtualnom računalu s dva virtualna diska (/dev/sda i /dev/sdb) te jednim CD-ROM uređajem (/dev/sr0):

Slika

Ili isti ispis na HP poslužitelju. SCSI ID: 0:0:0:0 predstavlja sami SCSI RAID kontroler (P410I), s jednim diskom u RAID1 polju (/dev/sda), jedinim RDX backup uređajem (/dev/sdb), CD/DVDROM uređajem (/dev/sr0) te iSCSI diskom koji se nalazi eksportiran preko mreže, na FreeBSD poslužitelju (/dev/sdc):

Slika

Još više detalja možemo dobiti ako ovu naredbu pozovemo s prekidačem -v  .

 

 

lsblk

Naredba lsblk  koristi se za ispis blok uređaja (većinom disk uređaji). Ako želimo vidjeti sve blok uređaje:

  • NAME označava ime uređaja: primjerice sda predstavlja disk uređaj /dev/sda
  • MAJ:MIN su Major i Minor oznake uređaja, prema kojima se identificira uređaj. Pogledajte knjigu: Uvod U Linux u Linux napredno: Poglavlje:  Uređaji (devices) detaljnije.
  • RM . označava jeli uređaj “removable”
  • SIZE je veličina uređaja/diska
  • RO je oznaka jeli uređaj READ ONLY
  • TYPE je oznaka vrste : jeli DISK, PARTICIJA, LVM uređaj i sl.
  • MOUNTPOINT označava direktorij u koji je uređaj mountan (ako je**)

**

Slika

 

 

iostat

Program iostat , dolazi u paketu sysstat ,  koji je obično potrebno instalirati. On nam daje nam izlistanje trenutnog opterećenja diskovnog sustava, poput programa iotop , samo za cijeli disk.

Provjerimo status svih diskova (koristili smo prekidač -m  kako bi vidjeli prikaz u MB/s):

iostat -m

Pogledajmo ispis ove naredbe:

Slika

Što je ovdje vidljivo:

  • u prvom redu vidimo opterećenje cijelog sustava
  • u tablici ispod vidimo:
    • Devices  – ovo su diskovi koje pratimo: /dev/sda, /dev/sdb, i vidimo i LVM polja (dm-0 i dm-1)
    • tps  – ovo je broj transakcija prema diskovnom sustavu (znan i kao IOPS – I/O operacija u sekundi)
    • MB_read/s  – koliko MB/s se čita s diska
    • MB_wrtn/s  – koliko MB/s se zapisuje na disk
    • MB_read  – ukupan broj MB koji je pročitan (read)
    • MB_wrtn  – ukupan broj MB koji je snimljen (write)

Ako želimo još detaljniji ispis stanja prema diskovnom podsustavu, možemo dodati i prekidač -x  , pa sada imamo:

Slika

Nećemo sve objašnjavati osim zadnjeg stupca %util , koji govori koliko je opterečen CPU za disk I/O operacije na svakom pojedinom disku. Za više detalja pročitajte knjigu: Uvod u Linux i Linux napredno: Poglavlje: Praćenje performansi I/O sustava.

Ova naredba ima i razne prekidače/opcije.

 

 

 

 

 

 

Linux općenito

 

dmidecode

Programi dmidecode , koristi DMI interface (Desktop Management Interface) kako bi preko njega mogao pristupiti informacijama o raznim komponentama računala :

  • bios  – BIOS matične ploče
  • system  – sistemske informacije proizvođača (model računala/poslužitelja, serijski brojevi i sl.)
  • baseboard  – o dijelovima matične ploče (disk kontroleri, integrirane mrežne kartice i druge komponente)
  • chassis , processor , memory , cache , …

Pokretanjem programa bez prekidača dobivamo sve dostupne informacije, ali možemo filtrirati i prikaz prema dijelovima navedenim gore. Pogledajmo kako dobiti informacije o matičnoj ploči:

dmidecode -t bios

Pogledajmo kako to izgleda:

Slika

 

 

free

Naredba free , daje nam statističke informacije o trenutnom zauzeću sustava virtualne memorije (RAM i swap). Naredbu množemo i pozvati s prekidačima -m  – ako želimo prikaz u MB i -g  ako želimo prikaz u GB. Pogledajmo primjer:

 

free -m

Slika

Vidljivo je:

  • kako ovo računalo ima 16384 MB (16 GB) RAM memorije, od koje se koristi 7011MB a slobodno je 9372 MB
  • kako se kao buffer/cache, koristi 5700 MB a slobodno je 10683 MB. Pogledajte knjigu Uvod u Linux i Linux napredno, Poglavlja:  VM – Slabs  i diskovni I/O podsustav
  • te kako swap diska imamo 512 MB a koristi se trenutno 4 MB a slobodno je 507 MB

 

 

vmstat

Program vmstat koristi se za prikaz informacije o sustavu virtualne memorije. On dolazi u paketu sysstat .

Pokrenimo ga, na istom računalo kao i prethodnu naredbu:

vmstat

Dobiti ćemo ovakav ili sličan ispis:

Slika

Vidljivo je:

  • zauzeće RAM  memorije (–memory–)
  • swap memorije (–swap–)
  • I/O zauzeče (–io–)
  • sistemske statistike (–system–)
  • CPU statistike.

Za detalje pogledajte knjigu Uvod u Linux i Linux napredno (naredbu vmstat  spominjemo na više mjesta).

Naime ovo je mjesto gdje možemo usporediti zauzeće sustava virtualne memorije i opterečenja sustava.

Korisni prekidači su :

  • -s  – prikazuje više detalja
  • -d  – daje nam više detalja u vezi s diskovnim sustavom

 

 

mpstat

Naredba mpstat  također dolazi u paketu sysstat a daje nam informacije o zauzeću CPUa.

Pokrenimo ju:

mpstat

I pogledajmo što će nam dati:

Slika

 

  • CPU – prikazuje se ALL jer je statistika za sve CPU jezgre
  • %usr – je opterećenje CPUa za procese korisnika
  • %nice – je opterečenje CPUa za korisničke programe koji imaju drugačiji (NICE) prioritet
  • %sys – je opterećenje CPUa za sistemske servise (daemone)
  • %iowait – je opterećenje CPUa za I/O procese (prema diskovnom podsustavu), na koje se čeka i troši CPU vrijeme
  • %irq – je opterećenje CPUa za opsluživanje hardverskih signala prekida (IRQ / interrupta)
  • %soft– je opterećenje CPUa za opsluživanje softverskih signala prekida (Soft IRQ / interrupta)
  •  

     

  • Za virtualna računala odnosno Hipervizore:

    • %steal – je opterećenje CPUa kod virtualnih računala (ako se radi o virtualnom računalu), u slučajevima kada Hipervizor oduzima dio CPU vremena virtualnom računalu
    • <li class="level3">
        <div class="li">
          <code>%guest</code> &#8211; je opterećenje CPUa kod virtualnih računala gdje se prikazuje koliko CPU vremena je potrebno za opsluživanje virtualnog procesora
        </div>
      </li>
      

  • %idle – je postotak koliko je CPU slobodan (ne radi ništa)
  •  

     

    dstat

    Naredba dstat  kombinira mogućnosti naredbi iostat , vmstat , netstat  i ifstat , i daje nam prikaz u realnom vremenu. Pogledajmo kako to izgleda:

    dstat

     

    Slika

    Dakle vidimo sve statistike, koje bi nam dobro došle od svih navedenih programa, u jednoj tablici, koja se popunjava u realnom vremenu. Naime ovdje vidimo kategorija statiszika za :

    • CPU
    • Disk
    • mrežu
    • paging
    • sistem (interrupti/context switchevi)

    Prikupljanje statistika se zaustavlja s tipkama CTRL  i c .

     

    lsusb

    Naredba lsusb , ispisuje nam sve spojene USB kontrolere ali i USB periferiju, odnosno vanjske uređaje:

    lsusb

    Dobiti ćemo nešto poput:

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
    
    

    Vidimo sve USB HUB (kontrolere), jer nismo spojili niti jedan vanjski USB uređaj (USB stick/disk,…)

     

    lspci

    Naredba lspci , ispisuje nam sve PCI i PCI Express kontrolere (sabirnice) te uređaje spojene na njih.

    Pogledajmo kako to izgleda:

    lspci

    Dobivamo:

    00:00.0 Host bridge: Intel Corporation 82915G/P/GV/GL/PL/910GL Memory Controller Hub (rev 04)
    00:02.0 VGA compatible controller: Intel Corporation 82915G/GV/910GL Integrated Graphics Controller (rev 04)
    00:1c.0 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 1 (rev 03)
    00:1c.1 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 2 (rev 03)
    00:1c.2 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 3 (rev 03)
    00:1c.3 PCI bridge: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) PCI Express Port 4 (rev 03)
    00:1d.0 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
    00:1d.1 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
    00:1d.2 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
    00:1d.3 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
    00:1d.7 USB controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
    00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev d3)
    00:1f.0 ISA bridge: Intel Corporation 82801FB/FR (ICH6/ICH6R) LPC Interface Bridge (rev 03)
    00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
    00:1f.2 IDE interface: Intel Corporation 82801FB/FW (ICH6/ICH6W) SATA Controller (rev 03)
    00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
    07:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5751 Gigabit Ethernet PCI Express (rev 11)
    09:00.0 Ethernet controller: Intel Corporation 82573L Gigabit Ethernet Controller (rev 01)
    0b:05.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)

    Svaki PCI/PCIe uređaj ima svoj identifikator (početni niz brojeva), a za svaki od uređaja (ili sve zajedno), pomoću prekidača -vv, možemo dobiti i detaljniji ispis. Dodatno, možemo i pomoću prekidača -s , zatražiti samo ispis određenog uređaja, prema identifikatoru.

    Pogledajmo primjerice zadnji uređaj (SCSI kontoler),uz više detalja:

    lspci -s 0b:05.0 -vv

    Dobiti ćemo:

    0b:05.0 SCSI storage controller: Adaptec AIC-7892A U160/m (rev 02)
    Subsystem: Adaptec 29160 Ultra160 SCSI Controller
    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: 72 (10000ns min, 6250ns max), Cache Line Size: 32 bytes
    Interrupt: pin A routed to IRQ 22
    BIST result: 00
    Region 0: I/O ports at 5000 [disabled] [size=256]
    Region 1: Memory at f0300000 (64-bit, non-prefetchable) [size=4K]
    [virtual] Expansion ROM at 80000000 [disabled] [size=128K]
    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=0 PME-
    Kernel driver in use: aic7xxx

    Vidimo dosta informacija, poput točnohg modela kontrolera (Adaptec 29160 Ultra160), a možda najzanimljivija je zadnja, odnosno, koji upravljački program (kernel modul) se koristi za našu SCSI kontroler – u ovom slučaju: aic7xxx .

     

    lscpu

    Naredba lscpu  daje nam podatke o našem CPUu:

    lscpu

     

    Dobiti ćemo nešto poput:

    Architecture: x86_64
    CPU op-mode(s): 32-bit, 64-bit
    Byte Order: Little Endian
    CPU(s): 2
    On-line CPU(s) list: 0,1
    Thread(s) per core: 2
    Core(s) per socket: 1
    Socket(s): 1
    NUMA node(s): 1
    Vendor ID: GenuineIntel
    CPU family: 15
    Model: 4
    Stepping: 3
    CPU MHz: 3400.000
    BogoMIPS: 6384.50
    L1d cache: 16K
    L2 cache: 2048K
    NUMA node0 CPU(s): 0,1

    Dakle vidimo sve podatke o CPUu, od takta, L1 i L2 cache memorije i točnog modela.

    Korisne Linux naredbe

    Hrvoje Horvat avatar
    Hrvoje Horvat
    Hrvoje Horvat mrežni je i sistem inženjer s dugogodišnjim (18+ g.) iskustvom u razvoju, testiranju i implementaciji, od najmanjih do enterprise kategorije IT sustava. Njegova područja rada su od mrežnih protokola do mrežnih servisa, preko standardne mrežne opreme do specijaliziranih komponenti i sustava, preko raznih mrežnih elemenata i sustava za mrežnu pohranu i dijeljenje podataka te platformi za Virtualizaciju, do protokola i sustava za redundanciju te sustava visoke dostupnosti (HA).