linux之lsof
阿新 • • 發佈:2018-11-07
lsof:list open file 列出已被開啟的檔案
選項:
+檔案/目錄 列出當前檔案或目錄是否程序在使用,常用
-u 指定使用者,查詢所屬使用者的程序開啟的檔案
-g 指定使用者組
-d FD 顯示指定檔案描述符的程序
lsof -i 用以顯示符合條件的程序情況
lsof -i[46] [protocol][@hostname|hostaddr][:service|port] 常用
例項:
列出當前系統所有程序開啟的所有檔案
[[email protected] ~]# lsof #就可以列出當前系統所有程序已開啟的檔案 如:vim install.log 檔案 [[email protected] ~]# lsof | grep install.log vim 6474 root 4u REG 8,6 16384 109 /root/.install.log.swp 第一列:程序名稱 第二列:pid 第三列:所屬使用者 第四列:FD檔案描述符,應用程式通過檔案描述符識別該檔案 第五列:檔案型別 第六列:磁碟名稱 第七列:檔案大小 第八列:索引節點(在磁碟上的索引節點) 第九列:檔名稱
恢復已刪除的檔案
[[email protected] ~]# cp install.log install.log1 [[email protected] ~]# vim install.log1 #shell中開啟檔案 [[email protected] ~]# rm -f install.log1 #重新開啟檔案 [[email protected]~]# lsof | grep install.log1 vim 6487 root 4u REG 8,6 16384 129 /root/.install.log1.swp [[email protected] ~]# cat /proc/6487/fd/4 >>/root/install.log1 #即可恢復
檢視某個埠是否正在執行
[[email protected] ~]# lsof -i :22 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME sshd 1135 root 3u IPv4 11545 0t0 TCP *:ssh (LISTEN) [[email protected] ~]# lsof -i :111 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME rpcbind 938 rpc 6u IPv4 10422 0t0 UDP *:sunrpc
檢視某個檔案系統是否正在使用(有使用無法解除安裝)
[[email protected] ~]# lsof /tmp COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME bash 6545 root cwd DIR 8,6 4096 14 /tmp #提示bash正在開啟,且所在目錄是tmp