本文轉自 位鵬飛 51CTO部落格,原文連結:http://blog.51cto.com/weipengfei/1334367,如需轉載請自行聯系原作者 從他的名字就能看書這個工具的用途:查詢給定檔案或目錄的使用者或程序資訊;
lsof也具備類似的功能,它也能夠找出正在對指定檔案通路的程序,兩者的差別是fuser在于它可以一次殺死那些正在通路指定檔案的程序。
fuser常用的場合是:
fuser可用于查詢檔案、目錄、socket端口和檔案系統的使用程序,并且可以使用fuser關閉程序。
當檔案系統umount報device busy時,常用到fuser查詢并關閉使用相應檔案系統的程序。(在DRBD切換的時候可以用到哦);
使用方式:
<a target="_blank" href="http://blog.51cto.com/attachment/201311/232553252.png"></a>
基本上使基本上用-v 可以顯示大部分内容:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/122545157.png"></a>
/root 目錄下的使用者,程序ID,PID後面的c代表程序的工作目錄,後面是具體的指令;
access還有其他選項:
e:該檔案為程序的可執行檔案;
f:該檔案被程序打開,預設f不顯示;
F:該檔案被程序打開,并寫入,預設F不顯示;
r:表示該目錄為程序的根目錄;
m:表示程序使用該檔案進行記憶體映射,或者該檔案為共享庫檔案,被程序映射至記憶體;
對socket端口使用者的情況進行查詢:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/123311854.png"></a>
檢視某檔案系統的使用情況:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/123821254.png"></a>
kill掉對某個檔案正在通路的程序:
fuser是對相關程序發送SIGKILL信号。除了發送SIGKILL信号之外,fuser還可以發送以下信号:
<a target="_blank" href="http://blog.51cto.com/attachment/201312/124135782.png"></a>
fuser -v -k filename;
要結束所有對某檔案系統進行通路的程序:
fuser -ck /data (某檔案系統挂載的目錄);