html tool

显示标签为“lsof”的博文。显示所有博文
显示标签为“lsof”的博文。显示所有博文

2018年4月22日星期日

转:通过文件查询使用的进程,通过进程查询使用的文件



http://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/lsof.html

[popexizhi:
lsof  ${filepach} /-p ${pid}/ -c ${processname}
很好用的,mark一下,部分命令还可以添加间隔时间周期显示
]

实例13:列出目前连接主机nf5260i5-td上端口为:20,21,80相关的所有文件信息,且每隔3秒重复执行

lsof -i @nf5260i5-td:20,21,80 -r 3

实例2:查找某个文件相关的进程

$lsof /bin/bash
COMMAND     PID USER  FD   TYPE DEVICE SIZE/OFF    NODE NAME
mysqld_sa  2169 root txt    REG  253,0   938736 4587562 /bin/bash
ksmtuned   2334 root txt    REG  253,0   938736 4587562 /bin/bash
bash      20121 root txt    REG  253,0   938736 4587562 /bin/bash

实例3:列出某个用户打开的文件信息

   $lsof -u username

-u 选项,u是user的缩写

实例4:列出某个程序进程所打开的文件信息

$lsof -c mysql
-c 选项将会列出所有以mysql这个进程开头的程序的文件,其实你也可以写成 lsof | grep mysql, 但是第一种方法明显比第二种方法要少打几个字符;

实例5:列出某个用户以及某个进程所打开的文件信息

$lsof  -u test -c mysql

实例6:通过某个进程号显示该进程打开的文件

$lsof -p 11968

2018年3月13日星期二

lsof -i port

https://my.oschina.net/leejun2005/blog/153584
[popexizhi: 查看端口占用这个命令还是很有效的 lsof -i:port;
补充:监控用户打开文件 lsof -u 和 监控进程打开文件的 lsof -c 都是很好用的。
]

2.4 监控网络

查看指定端口有哪些进程在使用(lsof -i 列出所有的打开的网络连接):
lsof -i:22
COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1569 root    3u  IPv4  10303      0t0  TCP *:ssh (LISTEN)
sshd    1569 root    4u  IPv6  10305      0t0  TCP *:ssh (LISTEN)
...

列出被某个进程打开所有的网络文件:
lsof -i -a -p 234
或者
lsof -i -a -c ssh

列出所有 tcp、udp 连接:
lsof -i tcp; 
lsof -i udp;