用lsof命令查看那些刪除了但是還打開(kāi)著文件句柄的文件婴氮,然后kill -9 pid
lsof |grep deleted
以下參考: http://www.reibang.com/p/a3aa6b01b2e1
lsof是系統(tǒng)管理/安全的尤伯工具
顯示與指定目錄交互的所有一切: lsof /var/log/messages/
顯示與指定文件交互的所有一切: lsof /home/daniel/firewall_whitelist.txt
顯示daniel連接到1.1.1.1所做的一切: lsof -u daniel -i @1.1.1.1
lsof可以netstat和ps的全部工作
默認(rèn) : 沒(méi)有選項(xiàng)主经,lsof列出活躍進(jìn)程的所有打開(kāi)文件
組合 : 可以將選項(xiàng)組合到一起,如-abc渠驼,但要當(dāng)心哪些選項(xiàng)需要參數(shù)
-a : 結(jié)果進(jìn)行“與”運(yùn)算(而不是“或”)
-l : 在輸出顯示用戶ID而不是用戶名
-h : 獲得幫助
-t : 僅獲取進(jìn)程ID
-U : 獲取UNIX套接口地址
-F : 格式化輸出結(jié)果迷扇,用于其它命令蜓席〕冢可以通過(guò)多種方式格式化渺贤,如-F pcfn(用于進(jìn)程id、命令名瞭亮、文件描述符固棚、文件名此洲,并以空終止)
使用-i顯示所有連接: 語(yǔ)法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
lsof -i
使用-i 6僅獲取IPv6流量 :lsof -i 6
僅顯示TCP連接(同理可獲得UDP連接): lsof -iTCP
使用-i:port來(lái)顯示與指定端口相關(guān)的網(wǎng)絡(luò)信息: lsof -i :22
使用@host:port顯示基于主機(jī)與端口的連接: lsof -i@172.16.12.5:22
找出正等候連接的端口: lsof -i -sTCP:LISTEN 娶桦, 可以grep “LISTEN”來(lái)完成該任務(wù): lsof -i | grep -i LISTEN
找出已建立的連接: lsof -i -sTCP:ESTABLISHED 衷畦, 可以通過(guò)grep搜索“ESTABLISHED”來(lái)完成該任務(wù):lsof -i | grep -i ESTABLISHED
使用-u顯示指定用戶打開(kāi)了什么: lsof -u daniel
使用-u user來(lái)顯示除指定用戶以外的其它所有用戶所做的事情: lsof -u ^daniel
殺死指定用戶所做的一切事情: kill -9 lsof -t -u daniel
命令和進(jìn)程
使用-c查看指定的命令正在使用的文件和網(wǎng)絡(luò)連接: lsof -c syslog-ng
使用-p查看指定進(jìn)程ID已打開(kāi)的內(nèi)容: lsof -p 10075
-t選項(xiàng)只返回PID: lsof -t -c Mail
文件和目錄
通過(guò)查看指定文件或目錄,你可以看到系統(tǒng)上所有正與其交互的資源——包括用戶铛嘱、進(jìn)程等墨吓。
顯示與指定目錄交互的所有一切: lsof /var/log/messages/
顯示與指定文件交互的所有一切: lsof /home/daniel/firewall_whitelist.txt
顯示daniel連接到1.1.1.1所做的一切: lsof -u daniel -i @1.1.1.1
同時(shí)使用-t和-c選項(xiàng)以給進(jìn)程發(fā)送 HUP 信號(hào): kill -HUP `lsof -t -c sshd`
lsof +L1顯示所有打開(kāi)的鏈接數(shù)小于1的文件 : lsof +L1(這通常(當(dāng)不總是)表示某個(gè)攻擊者正嘗試通過(guò)刪除文件入口來(lái)隱藏文件內(nèi)容。)
顯示某個(gè)端口范圍的打開(kāi)的連接: lsof -i @fw.google.com:2150=2180
常用lsof 命令 案例
lsof指令的用法:
lsof abc.txt 顯示開(kāi)啟文件abc.txt的進(jìn)程
lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序
lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開(kāi)的文件
lsof -g gid 顯示歸屬gid的進(jìn)程情況
lsof +d /usr/local/ 顯示目錄下被進(jìn)程開(kāi)啟的文件
lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄式矫,時(shí)間較長(zhǎng)
lsof -d 4 顯示使用fd為4的進(jìn)程 [www.2cto.com](http://www.2cto.com)
lsof -i 用以顯示符合條件的進(jìn)程情況
語(yǔ)法: lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
46 --> IPv4 or IPv6
protocol --> TCP or UDP
hostname --> Internet host name
hostaddr --> IPv4位置
service --> /etc/service中的 service name (可以不只一個(gè))
port --> 端口號(hào) (可以不只一個(gè))
例子: TCP:25 - TCP and port 25
@1.2.3.4 - Internet IPv4 host address 1.2.3.4
[tcp@ohaha.ks.edu.tw](mailto:tcp@ohaha.ks.edu.tw):ftp - TCP protocol [hosthaha.ks.edu.tw](http://hosthaha.ks.edu.tw) service name:ftp
lsof -n 不將IP轉(zhuǎn)換為hostname聪廉,缺省是不加上-n參數(shù)
例子: lsof -i [tcp@ohaha.ks.edu.tw](mailto:tcp@ohaha.ks.edu.tw):ftp -n
lsof -p 12 看進(jìn)程號(hào)為12的進(jìn)程打開(kāi)了哪些文件
lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行板熊,缺省是15s刷新
-r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行筒严,直到收到中斷信號(hào)
+r鸭蛙,lsof會(huì)一直執(zhí)行,直到?jīng)]有檔案被顯示
例子:不斷查看目前ftp連接的情況:lsof -i [tcp@ohaha.ks.edu.tw](mailto:tcp@ohaha.ks.edu.tw):ftp -r
lsof -s 列出打開(kāi)文件的大小,如果沒(méi)有大小,則留下空白
lsof -u username 以UID较木,列出打開(kāi)的文件 [www.2cto.com](http://www.2cto.com)
其他:
進(jìn)程調(diào)試命令:truss伐债、strace和ltrace
進(jìn)程無(wú)法啟動(dòng)峰锁,軟件運(yùn)行速度突然變慢虹蒋,程序的"SegmentFault"等等都是讓每個(gè)Unix系統(tǒng)用戶頭痛的問(wèn)題,而這些問(wèn)題都可以通過(guò)使用truss徐绑、strace和ltrace這三個(gè)常用的調(diào)試工具來(lái)快速診斷軟件的"疑難雜癥"傲茄。