lsof
lsof
的功能非常简单,就是"list open files"。而"Everything is a file"作为Linux中的设计哲学,lsof
实际是一个非常使用的工具,但是却没有得到足够的重视。
这里重点介绍lsof
与网络相关的功能。
# lsof -i :22 // 查看使用22端口的流
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1629 root 3u IPv4 13180 0t0 TCP *:ssh (LISTEN)
sshd 1629 root 4u IPv6 13189 0t0 TCP *:ssh (LISTEN)
sshd 17645 root 3r IPv4 136800 0t0 TCP localhost:ssh->localhost:63775 (ESTABLISHED)
sshd 19771 root 3r IPv4 142542 0t0 TCP localhost:ssh->localhost:52520 (ESTABLISHED)
# lsof -i @127.0.0.1 // 查看指定IP地址相关的流
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rpc.statd 1429 rpcuser 5u IPv4 12321 0t0 UDP localhost:757
cupsd 1470 root 7u IPv4 12536 0t0 TCP localhost:ipp (LISTEN)
master 1721 root 12u IPv4 13447 0t0 TCP localhost:smtp (LISTEN)
# lsof -p `pidof httpd|tr ' ' ','` // 查看httpd服务打开的文件
# lsof -p `pidof httpd|tr ' ' ','` |wc -l // 统计httpd服务打开的文件数