讲解Linux之快速查找被删除的文件

日常运维过程中,我们经常需要处理磁盘空间问题,当接到告警后,第一时间会去找那些大文件,一般比如Centos,可能大文件就是/var/log/messages 。
但有的时候,会出现怎么也查不到大文件的情况,通过du查找的时候,统计出来的大小,跟df显示的占用空间对应不上 。
如果通过df-i查看inode没有满的话,那么极有可能,是有大文件被直接rm了,但是仍然有进程打开了这个文件 。
这种情况,由于进程没有退出,因此文件占用的空间并不会释放;直到进程退出,磁盘空间才会真正释放 。
如何找到是哪个进程打开了该文件
Linux上,由于进程仍然存活,因此可以通过查看所有进程打开的fd,如果该文件已经被删除,则查看时,会显示(deleted) 。
示例如下:
讲解Linux之快速查找被删除的文件
文章插图
如何避免这种情况
不要直接删除该文件,而是通过将文件truncate的方式,释放磁盘空间 。
一种方式是:
cat/dev/null》${filename}
或者(新get!)
:》${filename}
【讲解Linux之快速查找被删除的文件】如此,可以快速释放空间 。
责编AJX
.dfma {position: relative;width: 1000px;margin: 0 auto;}.dfma a::after {position: absolute;left: 0;bottom: 0;width: 30px;line-height: 1.4;text-align: center;background-color: rgba(0, 0, 0, .5);color: #fff;font-size: 12px;content: "广告";}.dfma img {display: block;}
讲解Linux之快速查找被删除的文件
文章插图

    推荐阅读