1、简介
lsof(list open files)是一个列出当前系统打开文件的工具
# 示例
$ lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 25679 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 25680 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 25681 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 25682 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 47247 root 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
# 说明
COMMAND:进程名称
PID:进程标识符
USER:进程运行的用户名
FD:文件描述符,应用程序通过文件描述符识别文件,如:cwd当前工作目录,mem内存映射文件,txt应用文本
TYPE:表示文件的类型,如,REG普通文件,DIR目录,CHR字符文件,BLK设备文件,UNIX为Unix套接字,FIFO先进先出队列,IPv4/IPv6网际协议IP套接字
DEVICE:文件所在的设备
SIZE:文件的大小
NODE:索引节点,文件在磁盘的标识符
NAME:打开文件的名称
2、查看文件和进程
#某个进程打开的文件
$ lsof -p 25679 // 25679是PID
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 25679 www cwd DIR 253,1 4096 2 /
nginx 25679 www rtd DIR 253,1 4096 2 /
nginx 25679 www mem REG 253,1 105824 265472 /usr/lib64/libresolv-2.17.so
nginx 25679 www mem REG 253,1 31408 265460 /usr/lib64/libnss_dns-2.17.so
nginx 25679 www mem REG 253,1 61624 265462 /usr/lib64/libnss_files-2.17.so
nginx 25679 www mem REG 253,1 15512 277609 /usr/lib64/libXau.so.6.0.0
nginx 25679 www mem REG 253,1 68192 266453 /usr/lib64/libbz2.so.1.0.6
nginx 25679 www mem REG 253,1 20112 266450 /usr/lib64/libuuid.so.1.3.0
nginx 25679 www mem REG 253,1 173320 266666 /usr/lib64/libexpat.so.1.6.0
nginx 25679 www mem REG 253,1 165976 277661 /usr/lib64/libxcb.so.1.1.0
nginx 25679 www mem REG 253,1 88776 278267 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
nginx 25679 www mem REG 253,1 991616 267698 /usr/lib64/libstdc++.so.6.0.19
nginx 25679 www mem REG 253,1 1137024 265452 /usr/lib64/libm-2.17.so
#某个用户打开的文件
$ lsof -u root
#不是某个用户打开的文件(取反,在用户名前添加^符号)
$ lsof -u ^root
#某个文件被哪些进程打开使用
$ lsof /dev/null
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root 0u CHR 1,3 0t0 1028 /dev/null
systemd 1 root 1u CHR 1,3 0t0 1028 /dev/null
systemd 1 root 2u CHR 1,3 0t0 1028 /dev/null
systemd-u 513 root 0r CHR 1,3 0t0 1028 /dev/null
auditd 727 root 0u CHR 1,3 0t0 1028 /dev/null
auditd 727 root 1u CHR 1,3 0t0 1028 /dev/null
auditd 727 root 2u CHR 1,3 0t0 1028 /dev/null
#某个进程名使用的文件信息
$ lsof -c nginx
3、查看网络信息
#某个端口的网络连接状态
$ lsof -i:80
#正等等连接的端口
$ lsof -i -sTCP:LISTEN(或者 lsof -i | grep -i LISTEN)
#所有的网络连接信息
$ lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chronyd 791 chrony 1u IPv4 15420 0t0 UDP localhost:323
chronyd 791 chrony 2u IPv6 15421 0t0 UDP localhost:323
dhclient 1009 root 6u IPv4 14892 0t0 UDP *:bootpc
master 1405 root 13u IPv4 19531 0t0 TCP localhost:smtp (LISTEN)
master 1405 root 14u IPv6 19532 0t0 TCP localhost:smtp (LISTEN)
sshd 1514 root 3u IPv4 16880 0t0 TCP *:ssh (LISTEN)
sshd 1514 root 4u IPv6 16882 0t0 TCP *:ssh (LISTEN)
#某个协议类型的网络连接信息
$ lsof -i TCP
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 1405 root 13u IPv4 19531 0t0 TCP localhost:smtp (LISTEN)
master 1405 root 14u IPv6 19532 0t0 TCP localhost:smtp (LISTEN)
sshd 1514 root 3u IPv4 16880 0t0 TCP *:ssh (LISTEN)
sshd 1514 root 4u IPv6 16882 0t0 TCP *:ssh (LISTEN)
#连接到某个主机的网络状态(对检查是否开放连接到网络中或互联网上某个指定主机的连接时十分有用)
$ lsof -i @192.168.7.46
#连接到某个主机的特定端口的网络状态
$ lsof -i @192.168.7.46:80
#当前主机监听的端口
$ lsof -i -s TCP:LISTEN
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
master 1405 root 13u IPv4 19531 0t0 TCP localhost:smtp (LISTEN)
master 1405 root 14u IPv6 19532 0t0 TCP localhost:smtp (LISTEN)
sshd 1514 root 3u IPv4 16880 0t0 TCP *:ssh (LISTEN)
sshd 1514 root 4u IPv6 16882 0t0 TCP *:ssh (LISTEN)
php 25435 root 5u IPv4 1320530009 0t0 TCP localhost:scanstat-1 (LISTEN)
nginx 25679 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 25679 www 7u IPv4 1218607199 0t0 TCP *:https (LISTEN)
nginx 25679 www 8u IPv4 1218607200 0t0 TCP *:8090 (LISTEN)
nginx 25680 www 6u IPv4 1218607198 0t0 TCP *:http (LISTEN)
nginx 25680 www 7u IPv4 1218607199 0t0 TCP *:https (LISTEN)
#仅获取IPv6流量
$ lsof -i 6
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
chronyd 791 chrony 2u IPv6 15421 0t0 UDP localhost:323
master 1405 root 14u IPv6 19532 0t0 TCP localhost:smtp (LISTEN)
sshd 1514 root 4u IPv6 16882 0t0 TCP *:ssh (LISTEN)
java 49925 root 248u IPv6 1193366018 0t0 TCP *:epicon (LISTEN)
java 49925 root 266u IPv6 1193367575 0t0 TCP *:11800 (LISTEN)
java 49925 root 267u IPv6 1193367576 0t0 TCP *:12800 (LISTEN)
java 49925 root 274u IPv6 1193370842 0t0 TCP localhost:11800->localhost:35382 (ESTABLISHED)
java 49949 root 19u IPv6 1193365187 0t0 TCP *:jamlink (LISTEN)
本文暂时没有评论,来添加一个吧(●'◡'●)