【系统运维】使用lsof命令查看文件占用

tanglu 11571 2022-03-18

一、lsof命令介绍

lsof命令用于查看进程打开的文件,而在Unix中一切皆文件,也就是说使用该工具可以查看所有被请求的东西,包括TCP连接、指定端口、网络连接等。


二、lsof命令示例

1、查看指定文件被调用情况

lsof /data/mysql3306/log/binlog/mysql-bin.000002

lsof.png

2、查看指定用户打开的文件信息

lsof  -u username


3、查看指定进程所打开的文件信息

lsof -c mysql  #也可以写为lsof|grep mysql


4、列出多个程序打开的文件信息,lsof默认将不同的选项进行"或"操作,所以这里还可以指定其他条件进行查询

lsof -c mysql -c nginx
lsof -u test -c mysql


5、通过进程PID查询打开的文件

lsof -p 16029


6、通过网络连接查询

# 列出所有tcp连接信息
lsof  -i tcp

# 列出所有udp连接信息
lsof  -i udp

# 列出指定端口被使用情况
lsof -i :3306
lsof -i tcp:80

# 列出某个用户的所有活跃的网络端口,这里使用-a进行"与"查询
lsof  -u test -i  -a


三、通过lsof定位服务器CPU消耗异常案例

1、使用top命令查看是哪个PID进程消耗了CPU资源,其执行用户是否可疑

2、使用"lsof -p PID"命令来查询该PID开启了哪些进程

3、分析第二步中的可疑进程,比如有没有在执行一些奇怪的shell脚本,有没有开启特殊端口

4、使用"lsof -i :port"查看被开启的特殊端口

5、经过上面的步骤后基本已经可以找出这些可疑程序和脚本了,只需要删除即可恢复


版权声明
本站所有文章均为原创,转载请注明出处!小站维护不易,如果对您有所帮助,希望能点击一下站内广告,谢谢!
上一篇:【系统运维】使用pidstat命令查看进程资源占用
下一篇:【系统运维】使用free命令查看系统内存
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

微信二维码