學習運維 fuser

2021-07-29 20:49:47 字數 2173 閱讀 9918

fuser功能

fuser 可以顯示出當前哪個程式在使用磁碟上的某個檔案、掛載點、甚至網路埠,並給出程式程序的詳細資訊. 

fuser顯示使用指定檔案或者檔案系統的程序id.預設情況下每個檔名後面跟乙個字母表示訪問型別。 

訪問型別如下: 

c 代表當前目錄 

e 將此檔案作為程式的可執行物件使用 

f 開啟的檔案。預設不顯示。 

f 開啟的檔案,用於寫操作。預設不顯示。 

r 根目錄。 

m 對映檔案或者共享庫。

fuser如果沒有找到任何程序正在使用指定的file, filesystem 或 socket, 或者在查詢過程中發生了fatal error,則返回non-zero 值。

fuser如果找到至少乙個程序正在使用指定的file, filesystem 或 socket,則返回zero。

fuser通常被用在診斷系統的「resource busy」問題,通常是在你希望umount指定的掛載點得時候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的程序的時候,你可以使用-k option。

fuser –k /path/to/your/filename

這時fuser會向所以正在使用/path/to/your/filename的程序傳送sigkill。如果你希望在傳送之前得到提示,可以使用-i 選項。

fuser –k –i /path/to/your/filename

s 將此檔案作為共享庫(或其他可裝載物件)使用

當指定的檔案沒有被訪問,或者出現錯誤的時候,fuser會返回非零。 

為了檢視使用tcp和udp套接字的程序,需要-n選項並指定命名空間。預設ipv4和ipv6都會顯示。套接字可以是本地的或者是遠端的埠,和遠端的位址。所有的域是可選的,但是其前面的','必須存在。如下: 

[lcl_port][,[rmt_host][,[rmt_port]]] 

對於ip位址和port,名稱和數字表示都可以使用。 

fuser只把pid輸出到標準輸出,其他的都輸出到標準錯誤輸出。 

常用選項

-a 顯示所有命令列中指定的檔案,預設情況下被訪問的檔案才會被顯示。 

-c 和-m一樣,用於posix相容。 

-k 殺掉訪問檔案的程序。如果沒有指定-signal就會傳送sigkill訊號。 

-i 殺掉程序之前詢問使用者,如果沒有-k這個選項會被忽略。 

-l 列出所有已知的訊號名稱。 

-m name 指定乙個掛載檔案系統上的檔案或者被掛載的塊裝置(名稱name)。這樣所有訪問這個檔案或者檔案系統的程序都會被列出來。如果指定的是乙個目錄會自動轉換成"name/",並使用所有掛載在那個目錄下面的檔案系統。 

-n space 指定乙個不同的命名空間(space).這裡支援不同的空間檔案(檔名,此處預設)、tcp(本地tcp埠)、udp(本地udp埠)。對於埠, 可以指定埠號或者名稱,如果不會引起歧義那麼可以使用簡單表示的形式,例如:name/space (即形如:80/tcp之類的表示)。 

-s 靜默模式,這時候-u,-v會被忽略。-a不能和-s一起使用。 

-signal 使用指定的訊號,而不是用sigkill來殺掉程序。可以通過名稱或者號碼來表示訊號(例如-hup,-1),這個選項要和-k一起使用,否則會被忽略。 

-u 在每個pid後面新增程序擁有者的使用者名稱。 

-v 詳細模式。輸出似ps命令的輸出,包含pid,user,command等許多域,如果是核心訪問的那麼pid為kernel. -v 輸出版本號。 

-4 使用ipv4套接字,不能和-6一起應用,只在-n的tcp和udp的命名存在時不被忽略。 

-6 使用ipv6套接字,不能和-4一起應用,只在-n的tcp和udp的命名存在時不被忽略。 

- 重置所有的選項,把訊號設定為sigkill.

(1)用fuser命令的四步:

1.確認掛接點有那些程序需要殺掉

#fuser -cu /mount_point

2.向程序發出sigkill訊號:

#fuser -ck /mount_point

3.確認看是否還有程序在訪問掛接點

#fuser -c /mount_point

4.umount掛接點

#umount /mount_point

學習運維的日子

學習運維的日子 窗外的大雨下個不停,心裡又多了些憂愁。想想來廣州都兩個月了,學到了什麼呢?問問自己,還是一陣茫然。主要還是自己的原因啊,不管是思維還是心態都調整的不好,學習沒有學到點子上。下一階段的學習一定要嚴格的要求自己,努力在努力。兄弟連的同學最讓人佩服的地方可能就是對待學習的態度了啊,積極,努...

學習運維的日子

窗外的大雨下個不停,心裡又多了些憂愁。想想來廣州都兩個月了,學到了什麼呢?問問自己,還是一陣茫然。主要還是自己的原因啊,不管是思維還是心態都調整的不好,學習沒有學到點子上。下一階段的學習一定要嚴格的要求自己,努力在努力。兄弟連的同學最讓人佩服的地方可能就是對待學習的態度了啊,積極,努力,堅持,那些能...

linux運維學習筆記

1 顯示 etc目錄下所有以l開頭,以乙個小寫字母結尾,且中間出現至少一位數字的檔案或目錄 ls d etc l digit lower 2,顯示 etc目錄下以任意一位數字開頭,且以非數字結尾的檔案或目錄 ls d etc digit 1 3 顯示 etc 目錄下以非字母開頭,後面跟了乙個字母及其...