Linux Professional Institute Learning Logo.
Preskoči na glavni sadržaj
  • Home
    • Svi resursi
    • LPI materijali za učenje
    • Postanite saradnik
    • Izdavači partneri
    • Postanite izdavački partner
    • O nama
    • FAQ
    • Saradnici
    • Roadmap
    • Kontaktiraj nas
  • LPI.org
4.3 Lekcija 2
Tema 1: Linux zajednica i open sors karijera
1.1 Evolucija Linux-a i popularni operativni sistemi
  • 1.1 Lekcija 1
1.2 Glavne open sors aplikacije
  • 1.2 Lekcija 1
1.3 Softver otvorenog koda i licenciranje
  • 1.3 Lekcija 1
1.4 ICT vještine i rad sa Linux-om
  • 1.4 Lekcija 1
Tema 2: Kretanje kroz Linux sistem
2.1 Osnove komande linije
  • 2.1 Lekcija 1
  • 2.1 Lekcija 2
2.2 Upotreba komande linije u traženju pomoći
  • 2.2 Lekcija 1
2.3 Korištenje direktorija i izlistavanje podataka
  • 2.3 Lekcija 1
  • 2.3 Lekcija 2
2.4 Kreiranje, premještanje i brisanje podataka
  • 2.4 Lekcija 1
Tema 3: Moć komandne linije
3.1 Arhiviranje podataka uz pomoć komande linije
  • 3.1 Lekcija 1
3.2 Pretraživanje i ekstrakcija informacija iz podataka
  • 3.2 Lekcija 1
  • 3.2 Lekcija 2
3.3 Pretvaranje komandi u skriptu
  • 3.3 Lekcija 1
  • 3.3 Lekcija 2
Tema 4: Linux operativni sistem
4.1 Odabir operativnog sistema
  • 4.1 Lekcija 1
4.2 Razumijevanje računalnog hardvera
  • 4.2 Lekcija 1
4.3 Gdje se smještaju podaci
  • 4.3 Lekcija 1
  • 4.3 Lekcija 2
4.4 Računalo na mreži
  • 4.4 Lekcija 1
Tema 5: Sigurnost i prava nad podacima
5.1 Osnovna sigurnost i identifikacija vrste korisnika
  • 5.1 Lekcija 1
5.2 Kreiranje korisnika i grupa
  • 5.2 Lekcija 1
5.3 Upravljanje pravima i ovlastima nad podacima
  • 5.3 Lekcija 1
5.4 Specijalni direktoriji i podaci
  • 5.4 Lekcija 1
How to get certified
  1. Tema 4: Linux operativni sistem
  2. 4.3 Gdje se smještaju podaci
  3. 4.3 Lekcija 2

4.3 Lekcija 2

Sertifikat:

Linux Essentials

Verzija:

1.6

Tema:

4 Linux operativni sistem

Cilj:

4.3 Gdje su skladišteni podaci

Lekcija:

2 od 2

Uvod

Nakon istraživanja programa i njihovih konfiguracijskih datoteka, u ovoj lekciji ćemo naučiti kako se komande izvršavaju kao procesi. Isto tako, komentarisaćemo sistemsku razmjenu poruka, upotrebu bafera kernela i kako je dolazak systemd i njegovog daemon dnevnika — journald — promjenio načine na koje su stvari rađene do sada u vezi sa evidentiranjem sistema.

Procesi

Svaki put kada korisnik izda komandu, pokreće se program i generira se jedan ili više procesa.

Procesi postoje u hijerarhiji. Nakon što se kernel učita u memoriju pri pokretanju, pokreće se prvi proces koji — zauzvrat — pokreće druge procese, koji opet mogu pokrenuti druge procese. Svaki proces ima jedinstveni identifikator (PID) i identifikator nadređenog procesa (PPID). To su pozitivni cijeli brojevi koji se dodjeljuju uzastopnim redoslijedom.

Dinamičko istraživanje procesa: top

Možete prikazati dinamičku listu procesa upotrebom top komande:

$ top

top - 11:10:29 up  2:21,  1 user,  load average: 0,11, 0,20, 0,14
Tasks:  73 total,   1 running,  72 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0,0 us,  0,3 sy,  0,0 ni, 99,7 id,  0,0 wa,  0,0 hi,  0,0 si,  0,0 st
KiB Mem :  1020332 total,   909492 free,    38796 used,    72044 buff/cache
KiB Swap:  1046524 total,  1046524 free,        0 used.   873264 avail Mem

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
   436 carol     20   0   42696   3624   3060 R  0,7  0,4   0:00.30 top
     4 root      20   0       0      0      0 S  0,3  0,0   0:00.12 kworker/0:0
   399 root      20   0   95204   6748   5780 S  0,3  0,7   0:00.22 sshd
     1 root      20   0   56872   6596   5208 S  0,0  0,6   0:01.29 systemd
     2 root      20   0       0      0      0 S  0,0  0,0   0:00.00 kthreadd
     3 root      20   0       0      0      0 S  0,0  0,0   0:00.02 ksoftirqd/0
     5 root       0 -20       0      0      0 S  0,0  0,0   0:00.00 kworker/0:0H
     6 root      20   0       0      0      0 S  0,0  0,0   0:00.00 kworker/u2:0
     7 root      20   0       0      0      0 S  0,0  0,0   0:00.08 rcu_sched
     8 root      20   0       0      0      0 S  0,0  0,0   0:00.00 rcu_bh
     9 root      rt   0       0      0      0 S  0,0  0,0   0:00.00 migration/0
    10 root       0 -20       0      0      0 S  0,0  0,0   0:00.00 lru-add-drain
    (...)

Kao što smo vidjeli gore, top nam također može dati informacije o potrošnji memorije i CPU-a cjelokupnog sistema i svakog procesa.

top omogućava korisniku interakciju.

Podrazumjevano, izlaz je sortiran prema procentu CPU vremena koje koristi svaki proces u opadajućem redosljedu. Ovo ponašanje se može izmijeniti pritiskom na sljedeće tipke unutar top:

M

Sortira prema zauzeću memorije.

N

Sortira prema ID broju procesa.

T

Sortira prema vremenu.

P

Sortira prema procentu CPU upotrebe.

Za prebacivanje između silaznog/uzlaznog redoslijeda samo pritisnite R.

Tip

Otmjenija i jednostavnija verzija top' je `htop. Druga — možda iscrpnija — alternativa je atop. Ako već nisu instalirani u vašem sistemu, preporučujem vam da koristite svoj menadžer paketa da ih instalirate i isprobate.

Snimak procesa: ps

Još jedna vrlo korisna komanda za dobivanje informacija o procesima je ps. Dok top pruža dinamičke informacije, ps je statičan.

Ako se poziva bez opcija, izlaz ps je prilično diskretan i odnosi se samo na procese pokrenute u trenutnom šelu:

$ ps
  PID TTY          TIME CMD
 2318 pts/0    00:00:00 bash
 2443 pts/0    00:00:00 ps

Prikazane informacije se odnose na identifikator procesa (PID), terminal u kojem se proces pokreće (TTY), CPU vrijeme potrebno za proces (TIME) i komandu koja je pokrenula proces ( CMD).

Koristan svič za ps je -f koji će prikazati listing u full formatu:

$ ps -f
UID        PID  PPID  C STIME TTY          TIME CMD
carol     2318  1682  0 08:38 pts/1    00:00:00 bash
carol     2443  2318  0 08:46 pts/1    00:00:00 ps -f

U kombinaciji sa drugim svičevima, -f će prikazati odnos između procesa roditelja i djeteta:

$ ps -uf
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
carol       2318  0.0  0.1  21336  5140 pts/1    Ss   08:38   0:00 bash
carol       2492  0.0  0.0  38304  3332 pts/1    R+   08:51   0:00  \_ ps -uf
carol       1780  0.0  0.1  21440  5412 pts/0    Ss   08:28   0:00 bash
carol       2291  0.0  0.7 305352 28736 pts/0    Sl+  08:35   0:00  \_ emacs index.en.adoc -nw
(...)

Također, ps će prikazati memorijsko zauzeće u procentima ukoliko se pozove sa -v svičem:

$ ps -v
  PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND
 1163 tty2     Ssl+   0:00      1    67 201224 5576  0.1 /usr/lib/gdm3/gdm-x-session (...)
 (...)
Note

Još jedna vizuelno atraktivna komanda koja prikazuje hijerarhiju procesa je pstree. Isporučuje se sa svim glavnim distribucijama.

Proces informacije u /proc direktoriju

Već smo vidjeli /proc sistem datoteka. /proc uključuje numerirani poddirektorij za svaki pokrenuti proces u sistemu (broj je PID procesa):

carol@debian:~# ls /proc
1    108  13   17   21   27   354  41   665  8    9
10   109  14   173  22   28   355  42   7    804  915
103  11   140  18   23   29   356  428  749  810  918
104  111  148  181  24   3    367  432  75   811
105  112  149  19   244  349  370  433  768  83
106  115  15   195  25   350  371  5    797  838
107  12   16   2    26   353  404  507  798  899
(...)

Dakle, sve informacije o određenom procesu su uključene u njegovu direktoriju. Hajde da navedemo sadržaj prvog procesa — onog čiji je PID 1 (izlaz je skraćen radi čitljivosti):

# ls /proc/1/
attr        cmdline          environ  io        mem	      ns
autogroup   comm             exe      limits    mountinfo numa_maps
auxv        coredump_filter  fd       loginuid  mounts    oom_adj
...

Možete provjeriti — na primjer — izvršnu datoteku procesa:

# cat /proc/1/cmdline; echo
/sbin/init

Kao što vidite, binarna datoteka koja je započela hijerarhiju procesa je /sbin/init.

Note

Komande se mogu povezati sa tačkom i zarezom (;). Poenta u korištenju gornje komande echo je da se obezbijedi novi red. Pokušajte i jednostavno pokrenite cat /proc/1/cmdline da vidite razliku.

Opterećenje sistema

Svaki proces na sistemu može potencijalno potrošiti sistemske resurse. Takozvano opterećenje sistema pokušava da agregira ukupno opterećenje sistema u jedan numerički indikator. Možete vidjeti trenutno opterećenje pomoću komande uptime:

$ uptime
 22:12:54 up 13 days, 20:26,  1 user,  load average: 2.91, 1.59, 0.39

Tri posljednje cifre označavaju prosjek opterećenja sistema za posljednju minutu (2,91), posljednjih pet minuta (1,59) i posljednjih petnaest minuta (0,39), respektivno.

Svaki od ovih brojeva pokazuje koliko je procesa čekalo da se dovrše CPU resursi ili ulazno/izlazne operacije. To znači da su ovi procesi bili spremni za pokretanje ako su dobili odgovarajuće resurse.

Sistemsko evidentiranje i sistemske poruke

Čim kernel i procesi počnu da se izvršavaju i komuniciraju jedni s drugima, proizvodi se mnogo informacija. Većina toga se šalje u datoteke — takozvane datoteke dnevnika ili, jednostavno, logs.

Bez evidentiranja, traženje događaja koji se desio na serveru bi sistemskim administratorima zadalo mnogo glavobolje, otuda je važno imati standardizovan i centralizovan način praćenja bilo kakvih sistemskih događaja. Osim toga, dnevnici su odlučujući i govore kada je u pitanju rješavanje problema i sigurnost, kao i pouzdani izvori podataka za razumijevanje sistemske statistike i predviđanja trendova.

Evidentiranje sa syslog daemonom

Tradicionalno, sistemskim porukama upravlja standardni alat za evidentiranje — syslog — ili bilo koji od njegovih derivata — syslog-ng ili rsyslog. Daemon za evidentiranje prikuplja poruke od drugih servisa i programa i pohranjuje ih u log datoteke, obično pod /var/log. Međutim, neke usluge vode računa o vlastitim logovima (uzmite — na primjer — Apache HTTPD web server). Isto tako, Linux kernel koristi prstenasti bafer u memoriji za pohranjivanje svojih log poruka.

Log datoteke u /var/log

Budući da su logovi podaci koji se mijenjaju tokom vremena, oni se obično nalaze u /var/log.

Ako istražite /var/log, shvatit ćete da su imena logova - do određene mjere - sasvim razumljiva. Neki primjeri uključuju:

/var/log/auth.log

Sadrži informacije o autentikaciji.

/var/log/kern.log

Sadrži informacije o kernelu..

/var/log/syslog

Sadrži informacije o sistemu.

/var/log/messages

Sadrži informacije o sistemu i aplikacijama.

Note

Tačan naziv i sadržaj log datoteka može se razlikovati u različitim distribucijama Linuxa.

Pristupanje log datotekama

Kada istražujete log datoteke, ne zaboravite da budete root (ako nemate dozvole za čitanje) i koristite pejdžer kao što je less;

# less /var/log/messages
Jun  4 18:22:48 debian liblogging-stdlog:  [origin software="rsyslogd" swVersion="8.24.0" x-pid="285" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Jun 29 16:57:10 debian kernel: [    0.000000] Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.130-2 (2018-10-27)
Jun 29 16:57:10 debian kernel: [    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-8-amd64 root=/dev/sda1 ro quiet

Alternativno, možete koristiti tail sa svičem -f da pročitate najnovije poruke datoteke i dinamički prikazujete nove redove kako se isti dodaju:

# tail -f /var/log/messages
Jul  9 18:39:37 debian kernel: [    2.350572] RAPL PMU: hw unit of domain psys 2^-0 Joules
Jul  9 18:39:37 debian kernel: [    2.512802] input: VirtualBox USB Tablet as /devices/pci0000:00/0000:00:06.0/usb1/1-1/1-1:1.0/0003:80EE:0021.0001/input/input7
Jul  9 18:39:37 debian kernel: [    2.513861] Adding 1046524k swap on /dev/sda5.  Priority:-1 extents:1 across:1046524k FS
Jul  9 18:39:37 debian kernel: [    2.519301] hid-generic 0003:80EE:0021.0001: input,hidraw0: USB HID v1.10 Mouse [VirtualBox USB Tablet] on usb-0000:00:06.0-1/input0
Jul  9 18:39:37 debian kernel: [    2.623947] snd_intel8x0 0000:00:05.0: white list rate for 1028:0177 is 48000
Jul  9 18:39:37 debian kernel: [    2.914805] IPv6: ADDRCONF(NETDEV_UP): enp0s3: link is not ready
Jul  9 18:39:39 debian kernel: [    4.937283] e1000: enp0s3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
Jul  9 18:39:39 debian kernel: [    4.938493] IPv6: ADDRCONF(NETDEV_CHANGE): enp0s3: link becomes ready
Jul  9 18:39:40 debian kernel: [    5.315603] random: crng init done
Jul  9 18:39:40 debian kernel: [    5.315608] random: 7 urandom warning(s) missed due to ratelimiting

Pronaći ćete izlaz u sljedećem obliku:

  • Vremenska oznaka

  • Ime hosta s kojeg je stigla poruka

  • Naziv programa/usluge koji je generisao poruku

  • PID programa koji je generisao poruku

  • Opis akcije koja se odigrala

Većina log datoteka je napisana u običnom tekstu; međutim, nekoliko može sadržavati binarne podatke kao što je slučaj sa /var/log/wtmp — koji pohranjuje podatke relevantne za uspješne prijave. Možete koristiti komandu file da odredite koji je slučaj:

$ file /var/log/wtmp
/var/log/wtmp: dBase III DBT, version number 0, next free block index 8

Ove datoteke se obično čitaju pomoću posebnih komandi. last se koristi za tumačenje podataka u /var/log/wtmp:

$ last
carol    tty2         :0               Thu May 30 10:53   still logged in
reboot   system boot  4.9.0-9-amd64    Thu May 30 10:52   still running
carol    tty2         :0               Thu May 30 10:47 - crash  (00:05)
reboot   system boot  4.9.0-9-amd64    Thu May 30 09:11   still running
carol    tty2         :0               Tue May 28 08:28 - 14:11  (05:42)
reboot   system boot  4.9.0-9-amd64    Tue May 28 08:27 - 14:11  (05:43)
carol    tty2         :0               Mon May 27 19:40 - 19:52  (00:11)
reboot   system boot  4.9.0-9-amd64    Mon May 27 19:38 - 19:52  (00:13)
carol    tty2         :0               Mon May 27 19:35 - down   (00:03)
reboot   system boot  4.9.0-9-amd64    Mon May 27 19:34 - 19:38  (00:04)
Note

Slično /var/log/wtmp, /var/log/btmp pohranjuje informacije o neuspjelim pokušajima prijave, a posebna komanda za čitanje njegovog sadržaja je lastb.

Log rotacija

Log datoteke mogu znatno porasti tokom nekoliko sedmica ili mjeseci i zauzeti sav slobodan prostor na disku. Za rješavanje ovog problema koristi se uslužni program logrotate. Implementira rotaciju loga, što podrazumijeva radnje kao što je premještanje log datoteka na novo ime, njihovo arhiviranje i/ili kompresovanje, ponekad njihovo slanje e-poštom sysadminu i na kraju ih briše kako stare. Konvencije koje se koriste za imenovanje ovih rotiranih log datoteka su različite (dodavanje sufiksa sa datumom, na primjer); međutim, jednostavno dodavanje sufiksa s cijelim brojem je uobičajeno:

# ls /var/log/apache2/
access.log  error.log  error.log.1  error.log.2.gz  other_vhosts_access.log

Obratite pažnju na to kako je error.log.2.gz već kompresovan sa gunzip-om (otuda sufiks .gz).

Prstenasti bafer kernela

Prstenasti bafer kernela je struktura podataka fiksne veličine koja snima poruke o butanju kernela kao i sve poruke kernela uživo. Funkcija ovog bafera — koja je vrlo važna — je da evidentira sve poruke kernela proizvedene pri butanju — kada syslog još nije dostupan. Komanda dmesg ispisuje prstenasti bafer kernela (koji je također bio pohranjen u /var/log/dmesg). Zbog proširenja prstenastog bafera, ova komanda se obično koristi u kombinaciji sa uslužnim programom za filtriranje teksta grep ili pejdžerom kao što je less. Na primjer, za traženje poruka o butanju:

$ dmesg | grep boot
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=5216e1e4-ae0e-441f-b8f5-8061c0034c74 ro quiet
[    0.000000] smpboot: Allowing 1 CPUs, 0 hotplug CPUs
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=5216e1e4-ae0e-441f-b8f5-8061c0034c74 ro quiet
[    0.144986] AppArmor: AppArmor disabled by boot time parameter
(...)
Note

Kako prstenasti bafer kernela vremenom raste s novim porukama, najstarije će nestati.

Sistemski dnevnik: systemd-journald

Od 2015. systemd je zamijenio SysV Init kao de facto sistemski i servisni menadžer u većini glavnih Linux distribucija. Kao posljedica toga, daemon dnevnik — journald — postao je standardna komponenta za evidentiranje, zamjenjujući syslog u većini aspekata. Podaci se više ne pohranjuju u običnom tekstu, već u binarnom obliku. Stoga je uslužni program journalctl neophodan za čitanje logova. Povrh toga, journald je kompatibilan sa syslogom i može se integrirati sa istim.

`journalctl`je uslužni program koji se koristi za čitanje i ispitivanje systemd baze podataka dnevnika. Ako se pozove bez opcija, ispisuje cijeli dnevnik:

# journalctl
-- Logs begin at Tue 2019-06-04 17:49:40 CEST, end at Tue 2019-06-04 18:13:10 CEST. --
jun 04 17:49:40 debian systemd-journald[339]: Runtime journal (/run/log/journal/) is 8.0M, max 159.6M, 151.6M free.
jun 04 17:49:40 debian kernel: microcode: microcode updated early to revision 0xcc, date = 2019-04-01
Jun 04 17:49:40 debian kernel: Linux version 4.9.0-8-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) )
Jun 04 17:49:40 debian kernel: Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-8-amd64 root=/dev/sda1 ro quiet
(...)

Međutim, ako se pozove sa svičevima -k ili --dmesg, bit će ekvivalentno korištenju komande dmesg:

# journalctl -k
[    0.000000] Linux version 4.9.0-9-amd64 (debian-kernel@lists.debian.org) (gcc version 6.3.0 20170516 (Debian 6.3.0-18+deb9u1) ) #1 SMP Debian 4.9.168-1+deb9u2 (2019-05-13)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-4.9.0-9-amd64 root=UUID=5216e1e4-ae0e-441f-b8f5-8061c0034c74 ro quiet
(...)

Druge interesantne opcije za journalctl uključuju:

-b, --boot

Prikazuje boot informacije.

-u

Prikazuje poruke o određenoj jedinici. Ugrubo, jedinica se može definirati kao bilo koji resurs kojim upravlja systemd. Na primjer, journalctl -u apache2.service se koristi za čitanje poruka o apache2 web serveru.

-f

Prikazuje najnovije poruke dnevnika i nastavlja da štampa nove unose dok se dodaju u dnevnik — slično kao tail -f.

Vođene vježbe

  1. Pogledajte sljedeći prikaz top i odgovorite na sljedeća pitanja:

    carol@debian:~$ top
    
    top - 13:39:16 up 31 min,  1 user,  load average: 0.12, 0.15, 0.10
    Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  1.1 us,  0.4 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1020332 total,   698700 free,   170664 used,   150968 buff/cache
    KiB Swap:  1046524 total,  1046524 free,        0 used.   710956 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
      605 nobody    20   0 1137620 132424  34256 S  6.3 13.0   1:47.24 ntopng
      444 www-data  20   0  364780   4132   2572 S  0.3  0.4   0:00.44 apache2
      734 root      20   0   95212   7004   6036 S  0.3  0.7   0:00.36 sshd
      887 carol     20   0   46608   3680   3104 R  0.3  0.4   0:00.03 top
        1 root      20   0   56988   6688   5240 S  0.0  0.7   0:00.42 systemd
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
        3 root      20   0       0      0      0 S  0.0  0.0   0:00.09 ksoftirqd/0
        4 root      20   0       0      0      0 S  0.0  0.0   0:00.87 kworker/0:0
    (...)
    • Koje procese je započeo korisnik carol?

    • Koji virtuelni /proc direktorij biste trebali posjetiti da biste tražili podatke u vezi sa komandom top?

    • Koji proces je prvi pokrenut? Kako možete reći?

      *Popunite tabelu navodeći u kojem polju top izlaza se nalaze sljedeće informacije:

      Information about …​ Summary Area Task Area

      Memory

      Swap

      PID

      CPU time

      Commands

  2. Koja komanda se koristi za čitanje sljedećih binarnih logova?

    • /var/log/wtmp

    • /var/log/btmp

    • /run/log/journal/2a7d9730cd3142f4b15e20d6be631836/system.journal

  3. U kombinaciji sa grep, koje komande biste koristili da saznate sljedeće informacije o vašem Linux sistemu?

    • Kada je sistem posljednji put restartovan (wtmp)

    • Koji hard diskovi su instalirani (kern.log)

    • Kada se desila posljednja prijava (auth.log)

  4. Koje dvije komande biste koristili da prikažete prstenasti bafer kernela?

  5. Označite gdje pripadaju sljedeće log poruke:

    • Jul 10 13:37:39 debian dbus[303]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

    • Jul 10 11:23:58 debian kernel: [ 1.923349] usbhid: USB HID core driver

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

    • Jul 10 14:02:53 debian sudo: pam_unix(sudo:session): session opened for user root by carol(uid=0)

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

    • Jul 10 11:23:58 debian NetworkManager[322]: <info> [1562750638.8672] NetworkManager (version 1.6.2) is starting…​

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

  6. Neka journalctl prikaže informacije o sljedećim jedinicama?

    Unit Command

    ssh

    networking

    rsyslog

    cron

Istraživačke vježbe

  1. Razmotrite top rezultat vođenih vježbi i odgovorite na sljedeća pitanja:

    • Koja dva koraka biste pratili kako bi ubili apache web server?

    • U polju sažetka, kako biste mogli prikazati informacije o fizičkoj i swap memoriji koristeći trake progresa?

    • Sada, sortirajte procese po memorijskom zauzeću:

    • Sada kada imate informacije o memoriji prikazane u trakama progresa i procesima sortiranim prema korištenju memorije, spremite ove konfiguracije tako da ih dobijete kao zadane sljedeći put kada koristite top:

    • Koja datoteka pohranjuje top’s konfiguracijske postavke? Gdje živi? Kako možete provjeriti njeno postojanje?

  2. Saznajte više o komandi exec u Bashu. Pokušajte demonstrirati njegovu funkcionalnost pokretanjem Bash sesije, pronalaženjem Bash procesa sa ps, zatim pokrenite exec /bin/sh i ponovo potražite proces sa istim PID-om.

  3. Slijedite ove korake da istražite događaje kernela i udev dinamičko upravljanje uređajima:

    • Priključite USB uređaj u svoj računar. Pokrenite dmesg i obratite pažnju na zadnje redove. Koja je najnovija linija?

    • Imajući na umu izlaz iz prethodne komande, pokrenite ls /dev/sd* i uvjerite se da se vaš USB disk pojavljuje na listi. Šta je izlaz?

      *Sada uklonite USB disk i ponovo pokrenite dmesg. Kako izgleda najnoviji red?

    • Ponovo pokrenite ls /dev/sd* i uvjerite se da je vaš uređaj nestao sa liste. Šta je izlaz?

Sažetak

U kontekstu skladištenja podataka, sljedeće teme su razmatrane u ovoj lekciji: upravljanje procesima i sistemsko evidentiranje i slanje poruka.

Što se tiče upravljanja procesima, naučili smo sljedeće:

  • Programi generišu procese i procesi postoje u hijerarhiji.

  • Svaki proces ima jedinstveni identifikator (PID) i identifikator nadređenog procesa (PPID).

  • top je vrlo korisna komanda za dinamičko i interaktivno istraživanje pokrenutih procesa u sistemu.

  • ps se može koristiti za dobijanje snimka trenutno pokrenutih procesa u sistemu.

  • Direktorij /proc uključuje direktorije za svaki pokrenut proces u sistemu nazvan po njihovim PID-ovima.

  • Koncept prosjeka opterećenja sistema — što je vrlo korisno za provjeru iskorištenosti/preopterećenja CPU-a.

Kada je u pitanju sistemsko evidentiranje, moramo zapamtiti:

  • Log datoteka je datoteka u kojoj se bilježe sistemski događaji. Logovi su neprocjenjivi kada je u pitanju rješavanje problema.

  • Evidentiranjem ili logiranjem tradicionalno upravljaju posebni servisi kao što su syslog, syslog-ng ili rsyslog. Ipak, neki programi koriste svoje vlastite daemone za evidentiranje.

  • Budući da su logovi promjenjivi podaci, čuvaju se u /var i — ponekad — njihova imena vam mogu dati nagovještaj o njihovom sadržaju (kern.log, auth.log, itd.)

  • Većina logova je napisana u običnom tekstu i može se čitati u bilo kojem editoru teksta sve dok imate odgovarajuća dopuštenja. Međutim, neki od njih su binarni i moraju se čitati pomoću posebnih komandi.

  • Da biste izbjegli probleme s prostorom na disku, log rotaciju provodi uslužni program logrotate.

  • Što se tiče kernela, on koristi kružnu strukturu podataka — bafer prstena — gdje se čuvaju poruke o butanju (stare poruke nestaju tokom vremena).

  • Sistemski i servisni menadžer systemd zamjenio je System V init u skoro svim distribucijama tako što je journald postao standardna usluga evidentiranja.

  • Za čitanje systemd-ovog dnevnika potreban je uslužni program journalctl.

Komande korištene u ovoj lekciji:

cat

Concateniraj/prikaži sadržaj datoteke.

dmesg

Prikaži prstenasti bafer kernela.

echo

Prikaži liniju teksta ili novi red.

file

Prikaži tip datoteke.

grep

Prikaži redove koje odgovaraju uzorku.

last

Prikaži listu posljednjih prijavljenih korisnika.

less

Prikaži sadržaj datoteke po jednu stranicu.

ls

Prikaži sadržaj direktorija.

journalctl

Upit systemd dnevnika.

tail

Prikaži poslednje redove datoteke.

Odgovor na vođene vježbe

  1. Pogledajte sljedeći prikaz top i odgovorite na sljedeća pitanja:

    carol@debian:~$ top
    
    top - 13:39:16 up 31 min,  1 user,  load average: 0.12, 0.15, 0.10
    Tasks:  73 total,   2 running,  71 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  1.1 us,  0.4 sy,  0.0 ni, 98.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    KiB Mem :  1020332 total,   698700 free,   170664 used,   150968 buff/cache
    KiB Swap:  1046524 total,  1046524 free,        0 used.   710956 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND
      605 nobody    20   0 1137620 132424  34256 S  6.3 13.0   1:47.24 ntopng
      444 www-data  20   0  364780   4132   2572 S  0.3  0.4   0:00.44 apache2
      734 root      20   0   95212   7004   6036 S  0.3  0.7   0:00.36 sshd
      887 carol     20   0   46608   3680   3104 R  0.3  0.4   0:00.03 top
        1 root      20   0   56988   6688   5240 S  0.0  0.7   0:00.42 systemd
        2 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kthreadd
        3 root      20   0       0      0      0 S  0.0  0.0   0:00.09 ksoftirqd/0
        4 root      20   0       0      0      0 S  0.0  0.0   0:00.87 kworker/0:0
    (...)
    • Koje procese je započeo korisnik carol?

      Odgovor: Samo jedan: top.

    • Koji virtuelni /proc direktorij biste trebali posjetiti da biste tražili podatke u vezi sa komandom top?

      Odgovor: /proc/887

    • Koji proces je prvi pokrenut? Kako možete reći?

      Odgovor: systemd. Zato što ima PID #1.

    • Popunite tabelu navodeći u kojem polju top izlaza se nalaze sljedeće informacije:

      Information about …​ Summary Area Task Area

      Memory

      Yes

      Yes

      Swap

      Yes

      No

      PID

      No

      Yes

      CPU time

      Yes

      Yes

      Commands

      No

      Yes

  2. Koja komanda se koristi za čitanje sljedećih binarnih logova?

    • /var/log/wtmp

      Odgovor: last

    • /var/log/btmp

      Odgovor: lastb

    • /run/log/journal/2a7d9730cd3142f4b15e20d6be631836/system.journal

      Odgovor: journalctl

  3. U kombinaciji sa grep, koje komande biste koristili da saznate sljedeće informacije o vašem Linux sistemu?

    • Kada je sistem posljednji put restartovan (wtmp)

      Odgovor: last

    • Koji hard diskovi su instalirani (kern.log)

      Odgovor: less /var/log/kern.log

    • Kada se desila posljednja prijava (auth.log)

      Odovor: less /var/log/auth.log

  4. Koje dvije komande biste koristili da prikažete prstenasti bafer kernela?

    dmesg i journalctl -k (također journalctl --dmesg).

  5. Označite gdje pripadaju sljedeće log poruke:

    • Jul 10 13:37:39 debian dbus[303]: [system] Successfully activated service 'org.freedesktop.nm_dispatcher'

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      X

      /var/log/messages

    • Jul 10 11:23:58 debian kernel: [ 1.923349] usbhid: USB HID core driver

      /var/log/auth.log

      /var/log/kern.log

      X

      /var/log/syslog

      /var/log/messages

      X

      Jul 10 14:02:53 debian sudo: pam_unix(sudo:session): session opened for user root by carol(uid=0)

      /var/log/auth.log

      X

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

    • Jul 10 11:23:58 debian NetworkManager[322]: <info> [1562750638.8672] NetworkManager (version 1.6.2) is starting…​

      /var/log/auth.log

      /var/log/kern.log

      /var/log/syslog

      /var/log/messages

      X

  6. Neka journalctl prikaže informacije o sljedećim jedinicama?

    Unit Command

    ssh

    journalctl -u ssh.service

    networking

    journalctl -u networking.service

    rsyslog

    journalctl -u rsyslog.service

    cron

    journalctl -u cron.service

Odgovor na istraživačke vježbe

  1. Razmotrite top rezultat vođenih vježbi i odgovorite na sljedeća pitanja:

    • Koja dva koraka biste pratili kako bi ubili apache web server?

      Prvo, pritisnite k; onda proslijedite kill vrijednost.

    • U polju sažetka, kako biste mogli prikazati informacije o fizičkoj i swap memoriji koristeći trake progresa?

      Pritiskom m jednom ili dvaput.

    • Sada, sortirajte procese po memorijskom zauzeću:

      M

    • Sada kada imate informacije o memoriji prikazane u trakama progresa i procesima sortiranim prema korištenju memorije, spremite ove konfiguracije tako da ih dobijete kao zadane sljedeći put kada koristite top:

      W

    • Koja datoteka pohranjuje top’s konfiguracijske postavke? Gdje živi? Kako možete provjeriti njeno postojanje?

      Datoteka je ~/.config/procps/toprc i živi u korisničkom home direktoriju (~). Pošto je to skrivena datoteka (nalazi se u direktoriju čije ime počinje tačkom), možemo provjeriti njegovo postojanje pomoću ls -a (navesti sve datoteke). Ova datoteka se može generisati pritiskom na kbd:[Shift+W] dok je u top.

  2. Saznajte više o komandi exec u Bashu. Pokušajte demonstrirati njegovu funkcionalnost pokretanjem Bash sesije, pronalaženjem Bash procesa sa ps, zatim pokrenite exec /bin/sh i ponovo potražite proces sa istim PID-om.

    exec zamjenjuje proces drugom komandom. U sljedećem primjeru možemo vidjeti da je Bash proces zamijenjen sa /bin/sh (umjesto da /bin/sh postane podređeni proces):

    $ echo $$
    19877
    $ ps auxf | grep 19877 | head -1
    carol  19877  0.0  0.0   7448  3984 pts/25   Ss   21:17   0:00  \_ bash
    $ exec /bin/sh
    sh-5.0$ ps auxf | grep 19877 | head -1
    carol  19877  0.0  0.0   7448  3896 pts/25   Ss   21:17   0:00  \_ /bin/sh
  3. Slijedite ove korake da istražite događaje kernela i udev dinamičko upravljanje uređajima:

    • Priključite USB uređaj u svoj računar. Pokrenite dmesg i obratite pažnju na zadnje redove. Koja je najnovija linija?

      Trebali biste dobiti nešto slično redovima [ 1967.700468] sd 6:0:0:0: [sdb] Attached SCSI removable disk.

    • Imajući na umu izlaz iz prethodne komande, pokrenite ls /dev/sd* i uvjerite se da se vaš USB disk pojavljuje na listi. Šta je izlaz?

      Ovisno o broju uređaja povezanih na vaš sistem, trebali biste dobiti nešto poput /dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdb2. U našem slučaju, nalazimo naš USB disk (/dev/sdb) i njegove dvije particije (/dev/sdb1 i /dev/sdb2).

    • Sada uklonite USB disk i ponovo pokrenite dmesg. Kako izgleda najnoviji red?

      Trebali biste dobiti nešto slično redovima [ 2458.881695] usb 1-9: USB disconnect, device number 6.

      Ponovo pokrenite ls /dev/sd i uvjerite se da je vaš uređaj nestao sa liste. Šta je izlaz?

      U našem slučaju, /dev/sda /dev/sda1.

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

Sljedeća lekcija

4.4 Računalo na mreži (4.4 Lekcija 1)

Pročitaj narednu lekciju

Linux Professional Insitute Inc. Sva prava zadržana. Posjeti web stranicu materijala za učenje: https://learning.lpi.org
Ovaj rad je licenciran pod Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License

LPI je neprofitna organizacija.

© 2023 Linux Profesional Institut (LPI) je globalni certifikacijski standard, podrške za karijeru, te vodeća organizacija za open sors profesionalce. Sa više od 200.000 certificiranih ljudi, prvi je najveći, svjetski vendor za Linux i open sors certifikaciju. LPI trenutno ima certificirane profesionalce u 180 zemalja širom svijeta, dostavlja testove na više jezika, te ima oko stotine trening partnera.

Naša svrha je omogućiti ekonomske i kreativne prilike za svakog, čineći dostupnim certifikaciju u open sors znanju i vještinama svima.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Kontaktirajte nas
  • Privatnost i politika kolačića

Primijetili ste grešku ili želite pomoći poboljšati ovu stranicu? Molimo prijavite nam!.

© 1999–2023 The Linux Professional Institute Inc. Sva prava zadržana.