公众号关注「奇妙的Linux世界」

设为「星标」linux删除文件夹中标linux,每晚带你玩转Linux!

日常运维过程中,我们常常须要处理c盘空间问题linux删除文件夹,当接到告警后,第一时间会去找这些大文件,通常例如Centos,可能大文件就是/var/log/messages。

但有的时侯,会出现怎样也查不到大文件的情况,通过du查找的时侯,统计下来的大小,跟df显示的占用空间对应不上。

假如通过df-i查看inode没有满的话,这么极有可能,是有大文件被直接rm了,并且一直有进程打开了这个文件。

这些情况,因为进程没有退出,因而文件占用的空间并不会释放;直至进程退出,c盘空间才能真正释放。

怎样找到是那个进程打开了该文件

Linux上,因为进程依旧存活,因而可以通过查看所有进程打开的fd,假如该文件早已被删掉,则查看时,会显示(deleted)。

示例如下:

$ sudo find /proc/*/fd -ls | grep  '(deleted)'
   388609      0 lrwx------   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/4 -> /tmp/ibpX85Vd (deleted)
   388610      0 lrwx------   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/5 -> /tmp/ibCwAgAj (deleted)
   388611      0 lrwx------   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/6 -> /tmp/ibRZ5rep (deleted)
   388612      0 lrwx------   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/7 -> /tmp/ibBuNEzA (deleted)
   388616      0 lrwx------   1 zerotier-one zerotier-one       64 Aug 21 00:19 /proc/29400/fd/11 -> /tmp/ibG68kpG (deleted)
登录后复制

怎么避开这些情况

不要直接删掉该文件linux删除文件夹,而是通过将文件truncate的方法,释放c盘空间。

一种方法是:

cat /dev/null > ${filename}
登录后复制

或则(新get!)

: > ${filename}
登录后复制

这么,可以快速释放空间。

参考文档

Findandremovelargefilesthatareopenbuthavebeendeleted

以上就是(星标)如何避免大文件被直接rm了?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部