linux之lsof使用技巧

码途行者
• 阅读 640

linux下有哪些文件

  • 普通文件
  • 目录
  • 符号链接
  • 面向块的设备文件
  • 面向字符的设备文件
  • 管道和命名管道
  • 套接字

当前系统中所有被打开的文件

> lsof
COMMAND     PID   TID    USER   FD      TYPE             DEVICE   SIZE/OFF       NODE NAME
systemd       1          root  cwd       DIR              253,1        288         64 /
lsof显示的结果,从左往右分别代表:打开该文件的程序名,进程id,用户,文件描述符,文件类型,设备,大小,iNode号,文件名。

列出被删除但占用空间的文件

在生产环境中,我们可能会使用df命令看到磁盘空间占满了,然而实际上又很难找到占满空间的文件,这常常是由于某个大文件被删除了,但是它却被某个进程打开,导致通过普通的方式找不到它的踪迹,最常见的就是日志文件。我们可以通过lsof来发现这样的文件:
> lsof | grep deleted
vpnserver  1490          root   19w      REG              253,1  391287670   33819714 /root/rumenz.log (deleted)
可以看到这些被删除的但仍然被打开文件,最后查找出来的时候,会被标记deleted。这个时候就可以根据实际情况分析,到底哪些文件可能过大但是却被删除了,导致空间仍然占满。

查看当前文件被哪些进程打开

第一个终端
> vi rumenz.sh
第二个终端
> tail -f rumenz.sh
第三个终端
> lsof rumenz.sh
COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
tail    28731  hyb    3r   REG   8,15      228 138441 rumenz.sh
使用vi打开的rumenz.sh并没有找出来,这是因为vi打开的是一个临时副本
> lsof |grep rumenz.sh
这样我们就找到了两个程序和rumenz.sh文件相关。

查看某个目录文件被打开情况

> lsof +D ./
递归处理

显示目录下被进程开启的文件

> lsof +d /usr/local/ 

查看当前进程打开了哪些文件

> lsof -c 进程名

查看某个端口被占用情况

> lsof -i :6379

查看所有TCP/UDP链接

> lsof -i tcp

查看某个用户打开了哪些文件

> lsof -u rumenz

通过某个进程号显示该进程打开的文件

> lsof -p 12345

原文链接:https://rumenz.com/rumenbiji/...
微信公众号:入门小站

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Wesley13 Wesley13
4年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Stella981 Stella981
4年前
Linux中的文件类型及其类型代码
Linux中的文件类型及其类型代码!在这里插入图片描述(https://oscimg.oschina.net/oscnet/up67bfe19ed260302d5bb03e4c15ce6ca6.png)文件类型类型代码普通文件目录(directory)d字符设备文件(characte
Stella981 Stella981
4年前
Linux文件系统
Linux中的文件类型:  一般文件    目录文件  d  链接文件  l  块文件    b  字符文件   c  socket文件 s  管道      pLinux中的文件属性:  运行 lsl!(http:
Wesley13 Wesley13
4年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
4年前
Linux应急响应(四):盖茨木马
0x00前言Linux盖茨木马是一类有着丰富历史,隐藏手法巧妙,网络攻击行为显著的DDoS木马,主要恶意特点是具备了后门程序,DDoS攻击的能力,并且会替换常用的系统文件进行伪装。木马得名于其在变量函数的命名中,大量使用Gates这个单词。分析和清除盖茨木马的过程,可以发现有很多值得去学习和借鉴的地方。0x01应急场景
Wesley13 Wesley13
4年前
4.2k Star!实用的 Mac 进程管理工具
【导语】:一款开源的Mac 应用程序,方便查看系统正在运行的所有进程,以及显示哪些应用程序正在使用哪些文件。简介Sloth是一款本地Mac应用程序,能显示系统中所有正在运行的进程所使用的文件、目录、套接字、管道和设备,让用户方便查看哪个应用程序正在使用哪个文件。Sloth主要有以下特点:1、可以查看所有打开的文件、目
Stella981 Stella981
4年前
Linux运维常用命令详解
1、ls文件属性: :普通文件 d:目录文件 b:块设备 c:字符设备文件 l:符号连接文件 p:命令管道 s:套接字文件  文件权限: 9位数字,每3位一组 文件硬链接次数 文件所属主(owner) 文件的属组(group) 文件大小(size),单位默认是字节  ls常用选项: l:显示文件属性,ls lll 
Stella981 Stella981
4年前
Linux学习笔记01
一、LINUX文件类型\:普通文件:纯文本文件(ascll)配置文件二进制文件(binaryfile):命令数据格式文件(date):/var/log/wtmpd:目录文件l:链接文件设备文件(/dev):b:block块设备c:character字符集设备:一次性读取,按
Stella981 Stella981
4年前
Linux中的文件描述符与打开文件之间的关系
导读内核(kernel)利用文件描述符(filedescriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。1\.概述在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件、目录文件、链接文件和设备文件。文件描述符(file
码途行者
码途行者
Lv1
我的心冷,空空的只剩下了一座城。
文章
2
粉丝
0
获赞
0