lsof用法
原文地址:https://www.cnblogs.com/architectforest/p/12638773.html
一,lsof的用途
lsof,List Open Files 列出当前系统打开文件的工具。
在linux环境下,任何事物都以文件的形式存在,
所以lsof通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件
二,lsof安装:
1,查看lsof所属的包
[ ~]# whereis lsof lsof: /usr/bin/lsof /usr/share/man/man1/lsof.1.gz [ ~]# rpm -qf /usr/bin/lsof lsof-4.91-2.el8.x86_64
2,如果提示找不到lsof命令,可以用yum安装
[ ~]# yum install lsof
三,查看lsof的版本和帮助
1,查看版本
[ ~]# lsof -v lsof version information: revision: 4.91...
2,查看帮助:
[ ~]# lsof -h
四,lsof的应用例子:
1,查看系统中所有打开的文件
[ ~]# lsof
2,查看某个用户打开的文件
# -u 参数用来指定要查看的用户
[ ~]# lsof -u mysql COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld_sa 17246 mysql cwd DIR 253,1 129 201372497 /usr/local/soft/mysql mysqld_sa 17246 mysql rtd DIR 253,1 272 128 / mysqld_sa 17246 mysql txt REG 253,1 1219216 16999680 /usr/bin/bash ...
3,查看有哪些进程正在打开某个文件?
[ ~]# lsof /data/mysql/log/mysql-slow.log COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 17700 mysql 29w REG 253,1 11018 34357947 /data/mysql/log/mysql-slow.log
说明:lsof后加文件名即可列出正在打开文件的进程
4,列出某个进程正在打开的文件(最常用的用法)
# -p 指定要查看的进程
[ ~]# lsof -p 17700 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 17700 mysql cwd DIR 253,1 4096 302055050 /data/mysql/data mysqld 17700 mysql rtd DIR 253,1 272 128 / mysqld 17700 mysql txt REG 253,1 1078700088 218133053 /usr/local/soft/mysql/bin/mysqld mysqld 17700 mysql DEL REG 0,17 3207767 /[aio] mysqld 17700 mysql DEL REG 0,17 3207766 /[aio] mysqld 17700 mysql DEL REG 0,17 3207765 /[aio] mysqld 17700 mysql DEL REG 0,17 3207764 /[aio] ...
说明:
输出字段的说明:
FD 表示文件描述符号:
如果值是3w,表示:它的文件描述符是 3 号,而 3 后面的 w ,表示以写的方式打开
TYPE 表示文件类型
NAME 表示文件路径
5,列出多个进程正在打开的文件(最常用的用法)
[ ~]# lsof -p 7492,7493,7494
6,列出所有的网络连接
# -i 用来查看网络连接的进程
[ ~]# lsof -i COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME NetworkMa 834 root 18u IPv4 21344 0t0 UDP blog:bootpc nginx 7491 root 22u IPv4 3087363 0t0 TCP *:http (LISTEN) nginx 7491 root 23u IPv4 3087364 0t0 TCP *:54321 (LISTEN) nginx 7492 nginx 22u IPv4 3087363 0t0 TCP *:http (LISTEN)
7,指定的连接的类型:
列出所有tcp 网络连接信息
[ ~]# lsof -i tcp
列出所有udp 网络连接信息
[ ~]# lsof -i udp
8,列出在使用某个端口的进程
# -i :port用来指定要查看的端口
[ ~]# lsof -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 17700 mysql 31u IPv6 3206926 0t0 TCP *:mysql (LISTEN)
9,列出nginx进程现在打开的文件
# -c 指定要查看的进程的名字
[ ~]# lsof -c nginx
10,-n参数:不将IP转换为hostname,默认会进行转换,即默认不加上-n参数,
[ ~]# lsof -n -i :3306 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME mysqld 17700 mysql 31u IPv6 3206926 0t0 TCP *:mysql (LISTEN)
11,列出所有使用fd为指定值的进程
# -d:指定文件描述符的值
[ ~]# lsof -d 1 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME systemd 1 root 1u CHR 1,3 0t0 11236 /dev/null systemd-j 513 root 1w CHR 1,3 0t0 11236 /dev/null
相关推荐
hackerlpy 2020-10-12
旭灿 2020-09-30
andylanzhiyong 2020-06-09
RayCongLiang 2020-06-02
LychieFan 2020-04-14
runningo 2020-03-03
ychristysl00 2020-01-10
昭君出塞 2020-01-23
咏月东南 2020-01-04
LUOPING0 2019-12-18
sufwei 2013-09-18
LychieFan 2016-05-03
阳光之吻 2016-12-18
LinuxWorking 2019-10-27
寒星孤照 2008-12-20
wanzyao 2019-09-04
test0 2016-12-18