lsof 必備Linux 網管工具之一

lsof

root使用者才能lsof命令,一般使用者可以看見/usr/sbin/lsof命令,但是一般使用者會顯示“permission denied”
彙整lsof指令的用法:

lsof abc.txt 顯示開啟abc.txt的程序
    lsof -i :22 提供22port目前跑的程序是哪個
    lsof -c abc 顯示abc程序打開的文件
    lsof -g gid 顯示該gid的程序狀態
    lsof +d /usr/local/ 顯示該目錄下被程序開啟的檔案
    lsof +D /usr/local/ 同上,但是會搜尋子目錄
    lsof -d 4  顯示fd是4的程序
    lsof -i  用來顯示符合條件的程序狀態
      語法: 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 (可以多個)
            port --> port號 (可以多個
      EX  : TCP:25 - TCP and port 25
            @1.2.3.4 - Internet IPv4 host address 1.2.3.4
            tcp@ohaha.ks.edu.tw:ftp - TCP protocol hosthaha.ks.edu.tw service name:ftp
    lsof -n 不做名稱解析hostname,省略是不加上-n參數
      EX  : lsof -i tcp@ohaha.ks.edu.tw:ftp -n
    lsof -p 12  查看程序ID 12打開哪些檔案
    lsof +|-r [t] 控制lsof佈斷重複執行,省略是15s更新一次
         -r,lsof會不停執行,直到收到中斷訊號
         +r,lsof會不停執行,直到沒有檔案被顯示
       EX :監看FTP連接狀態:lsof -i tcp@ohaha.ks.edu.tw:ftp -r
    lsof -s 列出開啟的文件大小,如果沒有則空白
    lsof -u username  以UID,列出開啟的檔案

[root@tcx160 FILES]# lsof -i tcp:22
COMMAND   PID USER   FD   TYPE DEVICE SIZE NODE NAME
sshd     3261 root    3u  IPv6   7301       TCP *:ssh (LISTEN)
sshd    19692 root    3u  IPv6 348642       TCP 9.186.96.160:ssh->9.186.96.117:32914 (ESTABLISHED)




參照
http://www.xxlinux.com/linux/article/accidence/technique/20070829/9537.html
http://ithelp.ithome.com.tw/question/10056376
http://tinux.no-ip.com/wordpress/?p=27
http://www.linuxsir.org/main/?q=node/233

Comments

Popular posts from this blog