歡迎您光臨本站 註冊首頁

Linux系統使用Fuser命令的方法

←手機掃碼閱讀     ml5rwbikls @ 2020-06-30 , reply:0

什麼是Fuser命令?

fuser命令是一個非常聰明的unix實用程序,用於查找正在使用某個文件、目錄或socket的進程。 它還提供有關擁有該進程的用戶和訪問類型的信息。。fuser工具顯示了使用指定文件或文件系統的每個進程的進程ID(PID)。

安裝

如果你的精簡版運行fuser提示如下信息:

-bash: fuser: command not found

請執行如下命令安裝:

[winbert@winbert-server ~]$ sudo yum -y install psmisc

如何使用fuser命令?

man命令可用於查看任何命令的幫助手冊,但是學習新知識(尤其是linux命令)的最佳方法是通過閱讀真實的示例,並且不斷地在終端中鍵入命令。 在終端中運行以下命令,以獲取有關fuser實用程序的使用選項的信息。

  [winbert@winbert-server ~]$ fuser  No process specification given  Usage: fuser [-fMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE] [-k [-i] [-SIGNAL]] NAME...    fuser -l    fuser -V  Show which processes use the named files, sockets, or filesystems.     -a,--all    display unused files too   -i,--interactive  ask before killing (ignored without -k)   -k,--kill    kill processes accessing the named file   -l,--list-signals  list available signal names   -m,--mount   show all processes using the named filesystems or block device   -M,--ismountpoint  fulfill request only if NAME is a mount point   -n,--namespace SPACE search in this name space (file, udp, or tcp)   -s,--silent   silent operation   -SIGNAL    send this signal instead of SIGKILL   -u,--user    display user IDs   -v,--verbose   verbose output   -w,--writeonly  kill only processes with write access   -V,--version   display version information   -4,--ipv4    search IPv4 sockets only   -6,--ipv6    search IPv6 sockets only   -      reset options     udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

 

如何查看使用某個目錄的進程

fuser序可以與-v選項一起使用,該選項以詳細模式運行該工具。 verbose選項用於在計算機屏幕上生成詳細輸出,因此用戶可以實時查看實用程序正在執行的操作。

  [winbert@winbert-server ~]$ fuser -v .        USER  PID ACCESS COMMAND  /home/winbert:  winbert 1435 ..c.. bash

 

上面的輸出顯示,以詳細模式運行時,fuser會提供有關USERPIDACCESSCOMMAND的信息。 ACCESS下的c字符表示訪問類型,表示“當前目錄”。 訪問類型很多,例如e(正在運行的可執行文件),r(根目錄),f(打開文件。在默認顯示模式下省略f),F(用於寫入的打開文件,在默認顯示模式下省略F)和 m(mmap文件或共享庫)。

查看使用你tcp或udp套接字的進程?

有時您需要使用TCP和UDP套接字查找進程。 為了查找這些進程,需要使用-n選項。 -n選項用於選擇相應的名稱空間。

  [root@huidukongjian-h4 docker]# fuser -v -n tcp 80        USER  PID ACCESS COMMAND  80/tcp:    root  27411 F.... docker-proxy

 

默認情況下,fuser將同時在IPv6和IPv4套接字中查找,但是可以使用-4-6選項更改默認選項。 -4選項代表IPv4-6選項代表IPv6。 請注意,fuser僅將PID輸出到stdout,其他所有內容都發送到stderr。

fuser -v -n tcp 80命令的結果顯示,使用docker的進程的進程ID為27411,而用於啟動該進程的命令為docker-proxy。 進程ID(PID)可以以多種方式使用,其中之一是進程終止。 與PID一起使用時,kill命令根據該進程ID終止進程。 fuser還可用於終止訪問特定文件的進程。 在以下命令中,-k選項用於終止正在使用在端口123上運行的tcp偵聽器的進程。為確保用戶不會殺死錯誤的進程,使用-i選項詢問用戶是否 在終止進程之前進行確認。

fuser -k  123/tcp

使用帶有-i選項的fuser -k命令在終止進程之前要求用戶進行確認。 用戶可以用y回答“是”,或者用N回答不殺死進程。

  fuser -i -k 123/tcp  123/tcp:    12216  Kill process 12216 ? (y/N)  Use The -6 Option To Look For IPv6 Sockets.

 

以下命令以詳細模式使用fuser,並嘗試查找在端口123上運行的IPv6套接字。

fuser -v -n tcp -6 123

查找佔用某個文件系統的進程

-m選項可與fuser命令一起使用,以查找訪問文件文件系統上文件的進程。 此選項需要文件名作為輸入參數。 -m選項非常有用,尤其是當用於發現正在訪問文件系統的進程並標識要殺死的進程時。

以下命令顯示所有訪問“ example.txt”所在的文件系統的進程。 仔細查看-m選項如何與fuser一起使用。

  [root@huidukongjian-h4 docker]# fuser -v -m data/v2/config.json         USER  PID ACCESS COMMAND  /root/docker-v2/data/v2/config.json:        root  kernel mount /        root   1 .rce. systemd        root   2 .rc.. kthreadd        root   3 .rc.. rcu_gp        root   4 .rc.. rcu_par_gp        root   6 .rc.. kworker/0:0H-kbl        root   8 .rc.. mm_percpu_wq        root   9 .rc.. ksoftirqd/0        root   10 .rc.. rcu_sched        root   11 .rc.. migration/0        root   12 .rc.. watchdog/0        root   13 .rc.. cpuhp/0        root   16 .rc.. netns        root   17 .rc.. kauditd        root   18 .rc.. khungtaskd        root   19 .rc.. oom_reaper        root   20 .rc.. writeback        root   21 .rc.. kcompactd0        root   22 .rc.. ksmd        root   23 .rc.. khugepaged        root   24 .rc.. crypto        root   25 .rc.. kintegrityd        root   26 .rc.. kblockd        root   27 .rc.. tpm_dev_wq        root   28 .rc.. md        root   29 .rc.. edac-poller        root   30 .rc.. watchdogd        root   42 .rc.. kswapd0        root   93 .rc.. kthrotld        root   94 .rc.. acpi_thermal_pm        root   95 .rc.. kmpath_rdacd        root   96 .rc.. kaluad        root   97 .rc.. ipv6_addrconf        root   98 .rc.. kstrp        root  326 .rc.. scsi_eh_0        root  327 .rc.. scsi_tmf_0        root  329 .rc.. kworker/0:1H-kbl        root  361 .rc.. ata_sff        root  363 .rc.. scsi_eh_1        root  365 .rc.. scsi_tmf_1        root  366 .rc.. scsi_eh_2        root  367 .rc.. scsi_tmf_2        root  387 .rc.. xfsalloc        root  390 .rc.. xfs_mru_cache        root  391 .rc.. xfs-buf/vda1        root  394 .rc.. xfs-data/vda1        root  395 .rc.. xfs-conv/vda1        root  396 .rc.. xfs-cil/vda1        root  397 .rc.. xfs-reclaim/vda        root  398 .rc.. xfs-log/vda1        root  399 .rc.. xfs-eofblocks/v        root  400 .rc.. xfsaild/vda1        root  486 .rce. systemd-journal        rpc   541 .rce. rpcbind        root  543 Frce. auditd        root  545 .rce. sedispatch        root  558 .rc.. rpciod        root  559 .rc.. kworker/u3:0        root  561 .rc.. xprtiod        root  582 Frce. sssd        polkitd  585 .rce. polkitd        root  589 .rce. rngd        dbus  593 frce. dbus-daemon        chrony  612 .rce. chronyd        root  652 Frce. sssd_be        root  668 Frce. sssd_nss        root  671 .rc.. ttm_swap        root  672 .rc.. nfit        root  675 frce. systemd-logind        root  683 Frce. gssproxy        root  740 frce. NetworkManager        root  743 Frce. tuned        root  814 frce. systemd-udevd        root  889 frce. sshd        root  890 Frce. rsyslogd        root  895 frce. agetty        root  898 frce. crond        root  899 frce. agetty        root  21821 .rc.. kworker/u2:0-flu        root  25475 frce. sshd        root  25480 .rce. systemd        root  25485 frce. (sd-pam        root  25491 frce. sshd        root  25492 frce. bash        root  25705 Frce. containerd        root  25706 Frce. dockerd        root  26375 .rc.. kworker/u2:1-eve        root  27251 Fr.e. containerd-shim        root  27267 F...m v2        root  27273 Fr.e. containerd-shim        root  27295 ....m sh        root  27400 .rce. docker-proxy        root  27411 .rce. docker-proxy        root  27416 Fr.e. containerd-shim        root  27432 ....m sh        root  27478 ....m sh        root  27479 F...m nginx        root  27480 ....m sleep        (unknown) 27481 F...m nginx        root  27561 ....m sleep        root  27705 .rc.. kworker/0:0-xfs-        root  27765 .rc.. kworker/0:1-xfs-        root  27836 .rc.. kworker/0:2-even        root  27860 frce. sshd        root  27883 frce. sshd        sshd  27884 frce. sshd

 

fuser還可用於將特定指令發送到某個進程。 當與-k選項一起使用時,fuser命令將KILL指令發送給進程。 有很多指令可以發送給運行中的進程,-l選項有助於查找可以與fuser一起使用的指令列表。

  [root@huidukongjian-h4 docker]# fuser -l  HUP INT QUIT ILL TRAP ABRT BUS FPE KILL USR1 SEGV USR2 PIPE ALRM TERM STKFLT  CHLD CONT STOP TSTP TTIN TTOU URG XCPU XFSZ VTALRM PROF WINCH POLL PWR SYS

 


[ml5rwbikls ] Linux系統使用Fuser命令的方法已經有745次圍觀

http://coctec.com/docs/linux/show-post-240465.html