您的位置 首页 linux常用命令

linux lsof 命令详解 获取被打开文件的信息–List Open Files

lsof  以获取任何被打开文件的各种信息,  是 linux 下的一个非常实用的系统级的监控、诊断工具。

List Open Files的缩写。

yum install lsof -y

 

(1) 使用: 显示与指定端口相关的网络信息
lsof -i:22

(2)使用-p查看指定进程ID已打开的内容
lsof  -p 10075
(3)  查看当前系统打开的文件数
lsof -Ki|wc -l

区分大小写

如果不加参数:lsof |wc -l,统计的是进程的线程数,数据差别还是很大的

查看具体某一个进程打开文件数

lsof -p [pid]|wc -l

查看打开文件数最多的6个进程

lsof -Ki|awk '{print $2}'|sort|uniq -c|sort -n -r|head -6

第一列是数列,第二列是进程id

使用 lsof  必须以 root 用户的身份运行它才能够充分地发挥其功能。

 

(4)lsof: no pwd entry for UID 70

今天在清理磁盘的时候,执行 lsof | grep deleted 时,出现很多 lsof: no pwd entry for UID 70 的报错,网上查原因有两个:

1、进程在用户被删除之前启动,并且从那以后一直在运行

2、进程在容器内被启动(该UID为容器内的用户ID)

可以使用-w参数忽略这些错误 lsof -w | grep deleted

lsof - 心恩惠动 - 博客园 (cnblogs.com)

(5) 释放已删除文件的空间

使用rm删除了文件,但是某些情况下文件并为真正释放,导致我们看到文件已经删除了,但是磁盘空间还是被占用着,如果是大文件,会出现磁盘可用空间+已占用文件小于磁盘空间的情况。如果需要释放磁盘空间,一是重启服务器,二是关闭使用文件的进程后释放。

lsof -n |grep deleted #查询标记为deleted的文件

kill pid #关闭pid

 

 

Linux 命令神器:lsof - 知乎 (zhihu.com)

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章