Fuser: Difference between revisions
No edit summary |
|||
(134 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
==Sissejuhatus== | ==Sissejuhatus== | ||
Antud artikkel on kirjutatud | 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> == | |||
<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,--kill tapab protsessi, mis kasutab antud faili | -k,--kill tapab protsessi, mis kasutab antud faili | ||
-l,--list-signals näitab | -l,--list-signals näitab kõik teadaolevad signaalide nimed | ||
-u,--user näitab | -m NAME, --mount NAME NAME nõuab failinimi. Võti-m näitab kõik protsessid, mis on | ||
-v,--verbose | 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 | -w,--writeonly tapab ainult kirjutamisõigusega protsesse | ||
-V,--version kuvab versiooni infot | -V,--version kuvab versiooni infot | ||
Line 28: | Line 31: | ||
<pre>$ man fuser</pre> | <pre>$ man fuser</pre> | ||
== | ==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 <ref>[https://linux.die.net/man/1/fuser </ref>. | |||
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 . | ||
</pre> | </pre> | ||
[[File: | [[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, 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>. | |||
<table style="width:50%"> | |||
<tr> | |||
<th>Täht</th><br> | |||
<th>Seletus</th> | |||
</tr> | |||
<tr> | |||
<td>'''c''' </td> | |||
<td>tähendab et protsess kasutab faili kui aktiivset kausta</td> | |||
</tr> | |||
<tr> | |||
<td>'''e''' </td> | |||
<td>tähendab et protsess kasutab faili kui .exe fail</td> | |||
</tr> | |||
<tr> | |||
<td>'''r'''</td> | |||
<td>tähendab et protsess kasutab faili kui root kausta.</td> | |||
</tr> | |||
<tr> | |||
<td>'''s'''</td> | |||
<td>tähendab et protsess kasutab faili kui jagatud teeki</td> | |||
</tr> | |||
</table> | |||
====Võti -v,--verbose ==== | |||
Võti -v kirjeldab detailselt protsesse, mis mingit faili on avanud või mingit failisüsteemi kasutavad. | |||
<pre> | |||
$ 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> | |||
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. <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 <ref>http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux </ref>==== | ||
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. | |||
e | <pre> | ||
$ fuser -v -k -i socket_serv | |||
USER PID ACCESS COMMAND | |||
socket_serv: himanshu 5643 ...e. socket_serv | |||
Kill process 5643 ? (y/N) y | |||
</pre> | |||
-- | Kasutades parameetrid -k and -i kasutaja saab oma valikul tappa protsessi, mis on mingit faili avanud. | ||
. | ====Võti -n <ref> http://www.thegeekstuff.com/2012/02/linux-fuser-command/ </ref> ==== | ||
Võtme -n abil saab uurida protsesse, mis kasutavad TCP/UDP pordid. | |||
<pre> | |||
# fuser -v -n tcp 2345 | |||
USER PID ACCESS COMMAND | |||
2345/tcp: fiber 22927 F.... h_socket.pl | |||
</pre> | |||
Näeme et protsess, mis kasutab TCP pordi 2345, on avanud kirjutamisõigusega faili. | |||
==== | ====Võti -m <ref> https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command </ref>==== | ||
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. | |||
<pre> | <pre> | ||
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 | |||
[...] | |||
</pre> | </pre> | ||
[[ | 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 <ref> http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux] </ref>==== | |||
Võtme -u abil saab tuvastada protsessi omaniku kasutajanimi, mis on avanud faili või kasutab konkreetse failisüsteemi. | |||
<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 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. | |||
<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. | |||
== Autor == | |||
Polina Popova <br> | |||
AK21 <br> | |||
november 2016 <br> | |||
== Kasutatud kirjandus== | |||
Artikli kirjutamisel on kasutatud järgmised allikad: | |||
</div> | |||
[[Category:Operatsioonisüsteemide_administreerimine_ja_sidumine]] |
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 .
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:
- ↑ https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command
- ↑ http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/
- ↑ http://www.computerhope.com/unix/fuser.htm
- ↑ [https://linux.die.net/man/1/fuser
- ↑ http://www.tecmint.com/learn-how-to-use-fuser-command-with-examples-in-linux/
- ↑ 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://www.ibm.com/support/knowledgecenter/ssw_aix_71/com.ibm.aix.cmds2/fuser.htm
- ↑ http://www.thegeekstuff.com/2012/02/linux-fuser-command
- ↑ http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux
- ↑ http://www.thegeekstuff.com/2012/02/linux-fuser-command/
- ↑ https://www.digitalocean.com/community/tutorials/how-to-use-the-linux-fuser-command
- ↑ http://fibrevillage.com/sysadmin/277-fuser-command-examples-on-linux]