Fuser: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Ppopova (talk | contribs)
No edit summary
Ppopova (talk | contribs)
 
(81 intermediate revisions by the same user not shown)
Line 3: Line 3:
==Sissejuhatus==
==Sissejuhatus==


Antud artikkel on kirjutatud "Operatsioonisüsteemide administreerimine ja sidumine" aine raames eesmärgiga anda ülevaade Linux/Unixi põhistes operatsioonisüsteemides kasutatavast käsust '''''fuser'''''. Käsk '''''fuser''''' on hea abimees Linux süsteemi administreerimisel, kuna ta võimaldab uurida protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad. Samuti käsk ''''fuser'''' näitab protsessi omaniku ja juurdepääsu liiki. [https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command]
Antud artikkel on kirjutatud "Operatsioonisüsteemide administreerimine ja sidumine" aine raames eesmärgiga anda ülevaade Linux/Unixi põhistes operatsioonisüsteemides kasutatavast käsust fuser. Fuser on hea abimees Linux süsteemi administreerimisel, kuna ta võimaldab uurida protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad. Protsess on programmi töötav ehk aktiivne koopia. Samuti käsk fuser võimaldab tuvastada protsessi omanikku ja juurdepääsu liiki<ref> https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command </ref>.
 
 
== Fuser <ref> http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/</ref> ja võtmete kirjeldused  <ref> http://www.computerhope.com/unix/fuser.htm</ref> ==


==Käsu format ja võtmete kirjeldused [http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/] [http://www.computerhope.com/unix/fuser.htm]==
<pre>
<pre>
# fuser [options] [file|socket]
# fuser [options] [file|socket]
Line 12: Line 14:
</pre>
</pre>


Mõned ''fuser'' võtmed:  
Mõned fuser võtmed:  
<pre>
<pre>
   -a,--all              näitab kõik failid  
   -a,--all              näitab kõik failid  
   -i,--interactive      küsib kinnitust enne protsessi tapmist (ei toimi ilma -k)
   -i,--interactive      küsib kinnitust enne protsessi tapmist (ei toimi ilma -k)
   -k,--kill            tapab protsessi, mis kasutab antud faili
   -k,--kill            tapab protsessi, mis kasutab antud faili
   -l,--list-signals    näitab kõik teadaolevad signaalide nimed
   -l,--list-signals    näitab kõik teadaolevad signaalide nimed
   -m NAME, --mount NAME NAME specifies a file on a failisüsteemis. Kuvataks kõik protsessid, mis on selles failisüsteemis faile avanud.  
   -m NAME, --mount NAME NAME nõuab failinimi. Võti-m näitab kõik protsessid, mis on    
   -u,--user            Näitab protssesi omaniku kasutaja nimi
                        failisüsteemis (kuhu kuulub NAME fail) faile avanud.  
   -v,--verbose          näitab  protsessi detailset kirjeldust
   -u,--user            näitab protssesi omanikku
   -v,--verbose          kirjeldab protsessi detailselt
   -w,--writeonly        tapab ainult kirjutamisõigusega protsesse
   -w,--writeonly        tapab ainult kirjutamisõigusega protsesse
   -V,--version          kuvab  versiooni infot
   -V,--version          kuvab  versiooni infot
Line 29: Line 32:


==Mõned näited==
==Mõned näited==
Kui kasutad fuser tavakasutajana, siis reeglina saad näha ainult need ptosessid, mis on sinu kodukataloogis faile avanud. Kui Fuser kasutada  root kasutaja (superuser) õigustega, siis saad uurida protsesse,  mis on teiste kasutajate kodukataloogides faile avanud [https://linux.die.net/man/1/fuser].
Kui kasutad fuser tavakasutajana, siis reeglina näed ainult neid protsesse, mis on sinu kodukataloogis faile avanud. Kui fuser kasutada  root kasutaja (superuser) õigustega, siis saad uurida ka neid protsesse,  mis on teiste kasutajate kodukataloogides faile avanud <ref>[https://linux.die.net/man/1/fuser </ref>.


Sisestades terminali fuser käsku ilma täiendava parameetrita  kuvatakse kasutajale protsessise ID-id, mis  kasutavad tema töökausta (vt. Joonis 1).[http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/]
Sisestades terminali fuser käsku ilma täiendava parameetrita  kuvatakse kasutajale protsesside ID-id, mis  kasutavad tema töökausta (vt. Joonis 1).<ref> http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/ </ref>
<pre>
<pre>
$  fuser  
$  fuser .
$  fuser /home/.........
</pre>
</pre>


[[File:fuser.png|thumb|x80px|none|Joonis 1. Protsessid ]]
[[File:Fuser4.png|thumb|x100px|none|Joonis 1. Protsessid ]]


Numbrid tähistavad protsessi ID. Nägu näha jooniselt 1 iga protsessi ID-le järgneb täht, mis näitab  kuidas antud protsess kasutab faili[https://sites.ualberta.ca/dept/chemeng/AIX-43/share/man/info/C/a_doc_lib/cmds/aixcmds2/fuser.htm]
Numbrid tähistavad protsessi ID. Nägu näha jooniselt 1 iga protsessi ID-le järgneb täht, mis näitab  kuidas antud protsess kasutab faili, teiste sõnadega täht iseloomustab juurdepääsu liiki <ref>https://sites.ualberta.ca/dept/chemeng/AIX-43/share/man/info/C/a_doc_lib/cmds/aixcmds2/fuser.htm </ref>.
Juurdepääsu liik:<br>
<table style="width:50%">
<table style="width:50%">
   <tr>
   <tr>
     <th>Täht</th>
     <th>Täht</th><br>
     <th>Seletus</th>  
     <th>Seletus</th>  
      
      
Line 49: Line 50:
   <tr>
   <tr>
     <td>'''c''' </td>
     <td>'''c''' </td>
     <td>tähendab et protsess kasutab faili kui töökausta</td>  
     <td>tähendab et protsess kasutab faili kui aktiivset kausta</td>  
      
      
   </tr>
   </tr>
Line 57: Line 58:
      
      
   </tr>
   </tr>
<tr>gi
<tr>
     <td>'''r'''</td>
     <td>'''r'''</td>
     <td>tähendab et protsess kasutab faili kui root kausta.</td>  
     <td>tähendab et protsess kasutab faili kui root kausta.</td>  
Line 68: Line 69:
   </tr>
   </tr>
</table>
</table>
Joonisel 1 „c” näitab  et protsessid  kasutavad kasutaja ''student'' kodukataloogi kui töökausta .




====Võti -v,--verbose ====
====Võti -v,--verbose ====
Võti  -v kirjeldab kirjeldab detailselt protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad.   
Võti  -v kirjeldab detailselt protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad.   
<pre>
<pre>
$ fuser -v
$ fuser -v .
</pre>
Nagu näidatud allpool, terminalis kuvatakse töökausta nimi, kasutaja nimi,  protsessi id (PID), juurdepääsu liik (ACCESS) ja protsessi nimi <ref> http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/</ref>.
<pre>
root@exampleuser-X55CR:~# fuser -v .
                    USER        PID ACCESS COMMAND
/root:              root      3378 ..c.. vim
                    root      3398 ..c.. bash
                    root      3449 ..c.. bash
                    root      19370 ..c.. bash
root@exampleuser-X55CR:~#
</pre>
</pre>
Nagu näidatud alltoodud joonisel 2 terminalis kuvatakse  töökausta nimi,  kasutaja nimi,  protsessi id (PID), juurdepääsu liik (ACCESS) ja protsessi nimi. [http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/]
Nii näiteks saab teada kogu info protsseside kohta, mis kasutavad sinu töökausta.
[[File:fuser2.png|thumb|x200px|none|Joonis 2. Protsesside detailne kirjeldus]]


Nii saab teada kogu info protsseside kohta, mis kasutavad sinu töökausta.
==== Võti -k ====
Fuser abil saab mitte ainult uurida protsesse, vaid ka tappa neid. Selleks tuleb kasutada fuser käsklust võtmega -k. Võti -k saadab SIGKILL  signaali protsessidele. Ainult ruut õigustega kasutaja saab tappa protssesi, mille omanikuks on teine kasutaja. <ref>http://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds2/fuser.htm</ref>


Allpool on näidatud, kuidas fuser abil saab ära tappa protsessi, mis on avanud konkreetse faili. <ref>http://www.thegeekstuff.com/2012/02/linux-fuser-command</ref>
<pre>
$ fuser -v -k socket_serv
                      USER        PID ACCESS COMMAND
socket_serv:        himanshu  4334 ...e.  socket_serv
</pre>
Siin on kasutatud võti -k et ära tappa protssesi, mis on avanud faili "socket_serv".


====Võti -k ja -i [http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux]====
====Võti -k ja -i <ref>http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux </ref>====
Parameeter -k kasutatakse, kui  vaja tappa protsessi, mis kasutab failisüsteemi. Selleks, et vältida kogemata protsessi tapmist, tasub kasutada lisaks ka parameeter -i. Kui kasutatakse mõlemad võtid  („-k” ja „-i” ), siis enne protsessi tapmist küsitakse kasutaja käest kinnitust.  
Võti -k kasutatakse, kui  vaja tappa protsessi, mis kasutab failisüsteemi. Selleks, et vältida kogemata protsessi tapmist, tasub kasutada lisaks ka parameeter -i. Kui kasutatakse mõlemad võtid  („-k” ja „-i” ), siis enne protsessi tapmist küsitakse kasutaja käest kinnitust.  
<pre>
<pre>
$ fuser -v -k -i socket_serv
$ fuser -v -k -i socket_serv
Line 92: Line 108:
</pre>
</pre>


Kasutades parameetrid -k and -i kasutaja saab oma valikul  tappa protsessi, mis on migit faili avanud.  
Kasutades parameetrid -k and -i kasutaja saab oma valikul  tappa protsessi, mis on mingit faili avanud.


====Võti -n [http://www.thegeekstuff.com/2012/02/linux-fuser-command/] ====
====Võti -n <ref> http://www.thegeekstuff.com/2012/02/linux-fuser-command/ </ref> ====


Võtme  -n abil kasutaja saab uurida protsesse, mis kasutavad   TCP/UDP pordid.
Võtme  -n abil saab uurida protsesse, mis kasutavad TCP/UDP pordid.
<pre>
<pre>
# fuser -v -n tcp 2345
# fuser -v -n tcp 2345
Line 102: Line 118:
2345/tcp:            fiber     22927 F....  h_socket.pl
2345/tcp:            fiber     22927 F....  h_socket.pl
</pre>
</pre>
Käsuga fusere -n saab näha et protsess, mis  kasutab  TCP pordi 2345, on avanud kirjutamisõigusega faili.
Näeme et protsess, mis  kasutab  TCP pordi 2345, on avanud kirjutamisõigusega faili.


====Võti -m====
====Võti -m <ref> https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command </ref>====
Võti -m kasutatakse fuser käsuga et leida kõik protsessid, mis on avanud faili konkreetses failisüsteemis, mille hulka antud fail kuulub.
Võti -m aitab leida kõik protsessid, mis kasutavad failisüsteemi, kuhu NAME fail kuulub.
Võti -m on hea abivahend, kui soovid teda mis protsessid on vaja ära tappa.  
Võti -m on hea abivahend, kui soovid teada saada, mis protsessid on vaja ära tappa.  
Terminalisse sisestakse käsk fuser - m koos faili nimega.
Terminalisse sisestakse käsk fuser - m koos faili nimega.
<pre>
<pre>
Line 119: Line 135:
                     [...]
                     [...]
</pre>
</pre>
  The -m option is very useful, especially when used to discover processes accessing a file system with the intetion of identifying which process to kill.
   
Võti -m, koos võtmega -v tagastab detailselt kirjeldust  kõikide protsesside kohta, mis kasutavad failisüsteemi,kuhu kuulub fail nimega ''example.txt'' .


The following command displays all processes accessing filesystem on which ‘example.txt’ resides. See carefully how the -m option is used with the fuser utility.
 
Võtme -m abil saab uuridaNext, you can determine kuvab protsessi mis mingi faili on vanaudwhich processes are accessing your ~.bashrc file like so:
==== Võti -u <ref> http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux] </ref>====
[[File:fuser3.png|thumb|x200px|none|Joonis 3. ]]
Võtme -u abil saab tuvastada protsessi omaniku kasutajanimi, mis on avanud faili või kasutab konkreetse failisüsteemi.
Võti -v tagab detailset kirjedust ja võti -m kuvab kõikide protsesside nimed, mis antud failisüsteemi kasutavadThe option, -m NAME or --mount NAME means name all processes accessing the file NAME. In case you a spell out directory as NAME, it is spontaneously changed to NAME/, to use any file system that is possibly mounted on that directory.6
<pre>
# fuser -v -u -m /zp_1
                    USER        PID ACCESS COMMAND
/zp_1:               root      7239 F.... (root)java
                    root      14293 F.... (root)java
</pre>
 
Antud juhul zp_1 on faili nimi. Võti -v kuvab protsseside ID-id ning juurdepääsu liiki. Viimases veerus võtmega -u abil saab näha protsessi omaniku kasutajanimi, mis antud faili on avanud.
 
 
==== Võti -l ====
 
Käsklus fuser on abiks kui soovid saata erinevaid signaale protsessideleVõtme -l abil saab uurida mis signaalid on võimalik kasutada fuser käsklusega. Näiteks kasutades fuser võtmega -k, protsessidele saadetakse KILL signaal.
<pre>
root@exampleuser-X55CR:~# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED
</pre>
 
Sisestades terminali fuser käsklust võtmega -l, saad näha kõik võimalikud signaalid, mida võib fuser käsuga kasutada protsesside haldamiseks.
 
== Kokkuvõtte ==
Protsesside haldamine on Linux süsteemi administreerimisel üks olulisematest osadest. See hõlmab protsesside monitooringu, signaalide saatmist protsessile ning protsesside prioriteetide määramist. Selleks et edukalt hallata kõiki operatsioonisüsteemis töötavaid protsesse ehk programme, on abiks erinevad käsklused(näiteks top, ps, pgrep, kill), sealhulgas on ka fuser käsk, mis on käsitletud antud artiklis.




Line 131: Line 171:
AK21 <br>
AK21 <br>
november 2016 <br>
november 2016 <br>




== Kasutatud kirjandus==
== Kasutatud kirjandus==
Artikli kirjutamisel on kasutatud järgmised allikad:
</div>


http://www.computerhope.com/unix/fuser.htm
[[Category:Operatsioonisüsteemide_administreerimine_ja_sidumine]]
 
http://www.thegeekstuff.com/2012/02/linux-fuser-command/
 
https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command
 
https://sites.ualberta.ca/dept/chemeng/AIX-43/share/man/info/C/a_doc_lib/cmds/aixcmds2/fuser.htm
 
http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/
 
http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux
https://linux.die.net/man/1/fuser

Latest revision as of 22:26, 13 November 2016

Sissejuhatus

Antud artikkel on kirjutatud "Operatsioonisüsteemide administreerimine ja sidumine" aine raames eesmärgiga anda ülevaade Linux/Unixi põhistes operatsioonisüsteemides kasutatavast käsust fuser. Fuser on hea abimees Linux süsteemi administreerimisel, kuna ta võimaldab uurida protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad. Protsess on programmi töötav ehk aktiivne koopia. Samuti käsk fuser võimaldab tuvastada protsessi omanikku ja juurdepääsu liiki[1].


Fuser [2] ja võtmete kirjeldused [3]

# fuser [options] [file|socket]
# fuser [options] -SIGNAL [file|socket]
# fuser -l 

Mõned fuser võtmed:

  -a,--all              näitab kõik failid 
  -i,--interactive      küsib kinnitust enne protsessi tapmist (ei toimi ilma -k)
  -k,--kill             tapab protsessi, mis kasutab antud faili
  -l,--list-signals     näitab kõik teadaolevad signaalide nimed
  -m NAME, --mount NAME NAME nõuab failinimi. Võti-m näitab kõik protsessid, mis on     
                        failisüsteemis (kuhu kuulub NAME fail) faile avanud. 
  -u,--user             näitab protssesi omanikku
  -v,--verbose          kirjeldab protsessi detailselt
  -w,--writeonly        tapab ainult kirjutamisõigusega protsesse
  -V,--version          kuvab  versiooni infot

Täpsemat infot fuser parameetrite kohta leiad terminalist käsuga:

$  man fuser

Mõned näited

Kui kasutad fuser tavakasutajana, siis reeglina näed ainult neid protsesse, mis on sinu kodukataloogis faile avanud. Kui fuser kasutada root kasutaja (superuser) õigustega, siis saad uurida ka neid protsesse, mis on teiste kasutajate kodukataloogides faile avanud [4].

Sisestades terminali fuser käsku ilma täiendava parameetrita kuvatakse kasutajale protsesside ID-id, mis kasutavad tema töökausta (vt. Joonis 1).[5]

$  fuser .
Joonis 1. Protsessid

Numbrid tähistavad protsessi ID. Nägu näha jooniselt 1 iga protsessi ID-le järgneb täht, mis näitab kuidas antud protsess kasutab faili, teiste sõnadega täht iseloomustab juurdepääsu liiki [6].


Täht Seletus
c tähendab et protsess kasutab faili kui aktiivset kausta
e tähendab et protsess kasutab faili kui .exe fail
r tähendab et protsess kasutab faili kui root kausta.
s tähendab et protsess kasutab faili kui jagatud teeki


Võti -v,--verbose

Võti -v kirjeldab detailselt protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad.

$ fuser -v .

Nagu näidatud allpool, terminalis kuvatakse töökausta nimi, kasutaja nimi, protsessi id (PID), juurdepääsu liik (ACCESS) ja protsessi nimi [7].

root@exampleuser-X55CR:~# fuser -v .
                     USER        PID ACCESS COMMAND
/root:               root       3378 ..c.. vim
                     root       3398 ..c.. bash
                     root       3449 ..c.. bash
                     root      19370 ..c.. bash
root@exampleuser-X55CR:~#

Nii näiteks saab teada kogu info protsseside kohta, mis kasutavad sinu töökausta.

Võti -k

Fuser abil saab mitte ainult uurida protsesse, vaid ka tappa neid. Selleks tuleb kasutada fuser käsklust võtmega -k. Võti -k saadab SIGKILL signaali protsessidele. Ainult ruut õigustega kasutaja saab tappa protssesi, mille omanikuks on teine kasutaja. [8]

Allpool on näidatud, kuidas fuser abil saab ära tappa protsessi, mis on avanud konkreetse faili. [9]

$ fuser -v -k socket_serv
                      USER        PID ACCESS COMMAND
socket_serv:         himanshu   4334 ...e.   socket_serv

Siin on kasutatud võti -k et ära tappa protssesi, mis on avanud faili "socket_serv".

Võti -k ja -i [10]

Võti -k kasutatakse, kui vaja tappa protsessi, mis kasutab failisüsteemi. Selleks, et vältida kogemata protsessi tapmist, tasub kasutada lisaks ka parameeter -i. Kui kasutatakse mõlemad võtid („-k” ja „-i” ), siis enne protsessi tapmist küsitakse kasutaja käest kinnitust.

$ fuser -v -k -i socket_serv
                      USER        PID ACCESS COMMAND
socket_serv:         himanshu   5643 ...e.   socket_serv
Kill process 5643 ? (y/N) y

Kasutades parameetrid -k and -i kasutaja saab oma valikul tappa protsessi, mis on mingit faili avanud.

Võti -n [11]

Võtme -n abil saab uurida protsesse, mis kasutavad TCP/UDP pordid.

# fuser -v -n tcp 2345
                     USER        PID ACCESS COMMAND
2345/tcp:            fiber     22927 F....  h_socket.pl

Näeme et protsess, mis kasutab TCP pordi 2345, on avanud kirjutamisõigusega faili.

Võti -m [12]

Võti -m aitab leida kõik protsessid, mis kasutavad failisüsteemi, kuhu NAME fail kuulub. Võti -m on hea abivahend, kui soovid teada saada, mis protsessid on vaja ära tappa. Terminalisse sisestakse käsk fuser - m koos faili nimega.

root@exampleuser-X55CR:~# fuser -v -m example.txt 
                     USER        PID ACCESS COMMAND
/root/example.txt:   root     kernel mount /
                     root          1 Frce. init
                     root          2 .rc.. kthreadd
                     root          3 .rc.. ksoftirqd/0
                     root          6 .rc.. migration/0
                     root          7 .rc.. watchdog/0
                    [...]

Võti -m, koos võtmega -v tagastab detailselt kirjeldust kõikide protsesside kohta, mis kasutavad failisüsteemi,kuhu kuulub fail nimega example.txt .


Võti -u [13]

Võtme -u abil saab tuvastada protsessi omaniku kasutajanimi, mis on avanud faili või kasutab konkreetse failisüsteemi.

# fuser -v -u -m /zp_1
                     USER        PID ACCESS COMMAND
/zp_1:               root       7239 F.... (root)java
                     root      14293 F.... (root)java

Antud juhul zp_1 on faili nimi. Võti -v kuvab protsseside ID-id ning juurdepääsu liiki. Viimases veerus võtmega -u abil saab näha protsessi omaniku kasutajanimi, mis antud faili on avanud.


Võti -l

Käsklus fuser on abiks kui soovid saata erinevaid signaale protsessidele. Võtme -l abil saab uurida mis signaalid on võimalik kasutada fuser käsklusega. Näiteks kasutades fuser võtmega -k, protsessidele saadetakse KILL signaal.

root@exampleuser-X55CR:~# fuser -l
HUP INT QUIT ILL TRAP ABRT IOT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM
STKFLT CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH IO PWR SYS
UNUSED

Sisestades terminali fuser käsklust võtmega -l, saad näha kõik võimalikud signaalid, mida võib fuser käsuga kasutada protsesside haldamiseks.

Kokkuvõtte

Protsesside haldamine on Linux süsteemi administreerimisel üks olulisematest osadest. See hõlmab protsesside monitooringu, signaalide saatmist protsessile ning protsesside prioriteetide määramist. Selleks et edukalt hallata kõiki operatsioonisüsteemis töötavaid protsesse ehk programme, on abiks erinevad käsklused(näiteks top, ps, pgrep, kill), sealhulgas on ka fuser käsk, mis on käsitletud antud artiklis.


Autor

Polina Popova
AK21
november 2016


Kasutatud kirjandus

Artikli kirjutamisel on kasutatud järgmised allikad: