lsof命令简要解析

lsof 命令


特别注意
  • 同时使用多个选项时, 默认行为是对结果进行**“逻辑或”运算**
  • 使用选项-a则为逻辑与

=

1 默认行为

没有选项,则列出活跃进程的所有打开文件

=

2 查看所有网络连接
[root@jacklee ~]# lsof -i
COMMAND     PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
ntpd        590  ntp   16u  IPv4    18521      0t0  UDP VM-4-5-centos:ntp 
ntpd        590  ntp   17u  IPv6    18522      0t0  UDP VM-4-5-centos:ntp 
ntpd        590  ntp   19u  IPv4    25052      0t0  UDP jacklee.cc:ntp 
ntpd        590  ntp   20u  IPv6    25053      0t0  UDP jacklee.cc:ntp 
dhclient    973 root    6u  IPv4    20054      0t0  UDP *:bootpc 
sshd       1183 root    3u  IPv4    24358      0t0  TCP *:ssh (LISTEN)
master     1315 root   13u  IPv4    24780      0t0  TCP VM-4-5-centos:smtp (LISTEN)
master     1315 root   14u  IPv6    24781      0t0  TCP VM-4-5-centos:smtp (LISTEN)
openresty  9447 root    6u  IPv4  1893732      0t0  TCP *:9527 (LISTEN)
docker-pr  9645 root    4u  IPv6    73370      0t0  TCP *:http (LISTEN)
sshd      10249 root    3u  IPv4 73396364      0t0  TCP jacklee.cc:ssh->114.86.235.244:10747 (ESTABLISHED)
tat_agent 12959 root   17u  IPv4 45248255      0t0  TCP jacklee.cc:50400->169.254.0.138:d-s-n (ESTABLISHED)
YDService 18879 root    9u  IPv4  8672424      0t0  TCP jacklee.cc:54494->169.254.0.55:lsi-bobcat (ESTABLISHED)
openresty 20135 root    6u  IPv4  1893732      0t0  TCP *:9527 (LISTEN)
barad_age 29677 root   12u  IPv4 74345158      0t0  TCP jacklee.cc:35870->169.254.0.4:http (ESTABLISHED)
docker-pr 30205 root    4u  IPv6 20816493      0t0  TCP *:mysql (LISTEN)

=

3 选项
# -a 结果进行“与”运算
# -i 查看网络连接的情况,包括连接的ip、端口等以及一些服务的连接情况
	lsof -i 6
	lsof -itcp
	lsof -i:22
	lsof -i@172.16.12.5
	lsof -i@172.16.12.5:22
	lsof -i -sTCP:LISTEN
	lsof -i -sTCP:ESTABLISHED
	
# -l 输出内容显示用户ID而不是用户名
# -n 显示IP 而不是主机名
# -p 查看指定进程pid已打开的内容
# -P 以数字方式显示端口
# -r 命令持续执行,直到收到中断信号
# +r 命令持续执行,直到没有输出内容
# -s 列出所有打开文件的大小,如果没有大小,则留下空白
# -t 仅返回 pid
# -u 指定 user

=

4 高频用法
# 显示与指定文件交互的所有一切
lsof  /path/firewall_whitelist.txt

# 22端口现在运行什么程序
lsof -i:22

# 看 pid=12 的进程打开了哪些文件
lsof -p 12 

# 显示目录下被进程开启的文件
lsof +d /usr/local/
lsof +D /usr/local/		# 递归搜索

# 查看指定命令打开的所有文件(以ping为例)
lsof -p `pidof ping`

# 消灭指定用户运行的所有东西
kill -9  `lsof -t -u jack`

=

5 高级操作
# 显示daniel连接到1.1.1.1所做的一切
lsof  -u daniel -i @1.1.1.1

# 显示所有打开的链接数小于1的文件
lsof +L1

# 显示某个【端口范围】的打开的连接
lsof  -i @fw.google.com:2150=2180

==

6 磁盘空间无法释放的问题

某文件正在被进程占用时,直接删除会导致系统无法释放这部分磁盘空间

# 说明:-n 选项,显示IP而不是主机名(能提高命令的执行速度)

lsof -n |& grep -v "UID" | grep deleted  >> deleted.log

PORTS="awk '{print $2}' deleted.log | sort | uniq -c | sort -nr | grep -v "delete" |grep -v "tmp" | awk '{print $2}'" && echo $PORTS

for i in $PORTS ; do pidof $i ; done

kill -9 $PORTS

==

wan

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值