微子网络与你分享了如何在Linux下快速找到被删除的文件。相信大部分人都不太了解,分享这篇文章,供大家参考。希望你看完这篇文章后收获很大。我们一起来看看。
在日常的运维过程中,经常需要处理磁盘空间的问题。收到报警后,我们会立即查找那些大文件,比如Centos,可能是/var/log/messages。
但是,有时候,会出现找不到大文件的情况。通过du搜索时,统计的大小与df显示的占用空间不一致。
如果通过df -i索引节点未满,很可能一个大文件已被直接rm,但仍有进程打开该文件。
在这种情况下,由于进程没有退出,文件占用的空间不会被释放;直到进程退出,磁盘空间才会真正释放。
如何找到是哪个进程打开了该文件
在Linux上,因为进程还活着,所以可以查看所有进程打开的fd。如果文件已被删除,将在查看时显示。
例子如下:
$sudofind/proc/*/fd-ls|grep '(已删除)
3886090 lrwx-1zero tier-one zero tier-one 64 aug 2100:19/proc/29400/FD/4-/tmp/IBPX 85vd \(已删除)
3886100 lrwx-1 zero tier-1 zero tier-one64 aug 2100:19/proc/29400/FD/5-/tmp/IBcWagaj \(已删除)
3886110 lrwx-1zero tier-one zero tier-one 64 aug 2100:19/proc/29400/FD/6-/tmp/ibrz5Rep \(已删除)
3886120 lrwx-1zero tier-one zero tier-one 64 aug 2100:19/proc/29400/FD/7-/tmp/ibBuNEzA \(已删除)
3886160 lrwx-1 zero tier-1 zero tier-one64 aug 2100:19/proc/29400/FD/11-/tmp/IBg 68 kpg \(已删除)
如何避免这种情况
不要直接删除文件,而是通过截断文件来释放磁盘空间。
一种方法是:
cat/dev/null${filename}
或者(new get!)
:${filename}
这样可以快速释放空间。
“如何在Linux下快速找到被删除的文件”这篇文章的内容就这么多了。谢谢大家看!相信大家都有一定的了解,希望分享的内容对大家有所帮助。如果你想学习更多的知识,请关注微子网络!
原地址:https://mp.weixin.qq.com/s? _ _ biz=mzi3m ti 2 nzkxma==mid=2247494283 idx=1sn=fad 8 FD F2 e 65 ebfe 1 B4 a 67 de 904 F2 bedcchksm=EAC 6 CB a2 DDB 142 B4 d 9187 ACB 37 b 10985 c 71862303 c 1082 BC 8 E6 F5 df 69881065 b 110 DC 978 b 29 MP share=1