Linux效能監控命令詳解:lsof
阿新 • • 發佈:2018-12-11
lsof
可以檢視當前系統所有的開啟檔案,在linux環境下,一切皆檔案,通過檔案不僅僅可以訪問常規資料,還可以訪問網路連線和硬體,如傳輸控制協議 (TCP) 和使用者資料報協議 (UDP) 套接字等,系統在後臺都為該應用程式分配了一個檔案描述符,檔案描述符提供了大量關於這個應用程式本身的資訊。
命令引數:
-a 列出被開啟的檔案的程序列表 -c<程序名> 列出指定程序所開啟的檔案 -g 列出GID號程序詳情 -d<檔案號> 列出佔用該檔案號的程序 +d<目錄> 列出目錄下被開啟的檔案 +D<目錄> 遞迴列出目錄下被開啟的檔案 -n<目錄> 列出使用NFS的檔案 -i<條件> 列出符合條件的程序。(4、6、協議、:埠、 @ip ) -p<程序號> 列出指定程序號所開啟的檔案 -u 列出UID號程序詳情
1、檔案被哪些程序打開了
[email protected]:~# lsof -a /var/lib/mysql/mysql/slow_log.CSV COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 29363 mysql 63r REG 253,1 0 263979 /var/lib/mysql/mysql/slow_log.CSV
2、列出使用者開啟的檔案
[email protected]:~# lsof -u root | more COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME init 1 root cwd DIR 253,1 4096 2 / init 1 root rtd DIR 253,1 4096 2 / init 1 root txt REG 253,1 167192 1048737 /sbin/init
3、列出程式(command)打開了哪些檔案
[email protected]:~# lsof -c python COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME python 32280 root rtd DIR 253,1 4096 2 / python 32280 root mem REG 253,1 52120 927846 /lib/x86_64-linux-gnu/libnss_files-2.15.so python 32280 root DEL REG 253,1 263953 /usr/lib/python2.7/lib-dynload/_multiprocessing.so
4、根據程序號列出該程序開啟的檔案
[email protected]:~# lsof -p 31370 #nginx的程序號 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 31370 www-data cwd DIR 253,1 4096 2 / nginx 31370 www-data rtd DIR 253,1 4096 2 / nginx 31370 www-data txt REG 253,1 843688 1186644 /usr/sbin/nginx
5、檢視所有網路連線,包括tcp,udp,ipv4,ipv6的連線(網路連線也是檔案)
[email protected]:~# lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME pptpd 975 root 6u IPv4 8836 0t0 TCP *:1723 (LISTEN) ssserver 7366 root 4u IPv4 100096 0t0 TCP *:8388 (LISTEN) ssserver 7366 root 5u IPv4 100097 0t0 UDP *:8388 ssserver 7366 root 7u IPv4 100098 0t0 UDP *:57935
6、檢視某個埠開啟的檔案(socket 連線)
[email protected]:~# lsof -i :80 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME nginx 31369 root 6u IPv4 8882096 0t0 TCP *:http (LISTEN)
7、檢視所有TCP連線
lsof -n -P -i TCP -s TCP:LISTEN
關注公眾號「Python之禪」(id:vttalk)獲取最新文章