僵尸文件的查看处理

发布时间 2023-04-20 10:08:22作者: 往事已成昨天

LINUX实战--本地使用空间与实际文件占用空间不匹配问题

 

LINUX操作系统

 

1

基本概念介绍

图片

首先了解一个概念:

僵尸文件,僵尸文件的产生是因为有进程或者用户调用文件,但是同时有其他用户删除文件。但是因为被调用的关系,文件不会直接删除,只会打上deleted的标志。

虽然操作上已经删除文件,但是实际文件所占用的空间没有真正释放

 

以及一个工具:

lsof工具,是一个列出当前系统打开文件的工具,通常使用lsof 加文件或者路径的方式查看。

 

 

2

为何会出现僵尸文件?

图片

文件系统与文件、磁盘管理与文件、进程管理与文件,最核心的都是文件的索引,而不是文件的数据。

一个数据构建了各式各样的索引,只有索引全部失效,此时数据才失去意义,才能最终释放。而仅仅删除文件并不能真正意义上的释放文件占用空间,因为还有其他用户调用,所以rm操作只会将其打上deleted标签,待无链接访问时就会直接释放。

 

3

实战演示

图片

本次介绍因为僵尸文件导致的空间不足问题

通过ll -al | grep filename发现实际占用空间与本地目录所使用空间不足

 

猜测属于僵尸文件导致的占用空间隐藏

通过lsof | grep delete 确实当前目录下是否存在僵尸文件

 

三种处理办法:

方式一、重启主机,主机重启后,所有调用进程都会释放,而文件已经处于deleted状态,会被直接释放

方式二、kill进程,此操作与方式一相同,都是通过释放调用来释放空间,但是kill操作存在一定的风险,极有可能会导致影响被kill的服务

方式三、清空文件释放空间

通过lsof | grep filename 查到对应PID

通过ls -l |/proc/PID/fd/* | grep filename 查找对应文件句柄

通过置空echo >/proc/PID/fd/NUM 此处NUM为第二步中的回显

但是需要注意的是第三种方式只是将文件置空,并未清除文件,文件本身还是存在的

 

 

 

技术梦想家

ID : technology_dreamer

一起探索科技的宇宙.....

图片

 

 

收录于合集 #linux
 9
上一篇LINUX初识--vim编辑器介绍下一篇LINUX初识--压缩工具介绍
阅读 22
技术梦想家
83篇原创内容