Linux 中文件删除了,df 看到磁盘还是100%?

底层架构

在linux运维中,磁盘满了是最经常遇到df查看磁盘还是100%
  • 通常情况下面,我们会先通过find 命令找出大文件,比如下面的命令找出大于10g的文件。
    • find / -size +10G
  • 找出后我们可以通过echo 命令清空这个文件,有时间直接删除这个文件,但删除后df 发现磁盘还是100%,资源并没有释放。
那是因为虽然文件被删除,但如果还有程序打开(占用)这个文件,真实文件内容并没有释放。
[undefined]
可以通过lsof 命令查看处于删除状态的文件句柄。

$ lsof | egrep "deleted|COMMAND"COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAMEora 23411 8194 oracle oracle 33 REG 65,65 4294983680 31014933 /oradata/DATAPRE/file.dbf (deleted)

就可以发现PID为 23411 的进程正在打开这个文件,并且连接已经失效了。

$ file /proc/23411/fd/33

/proc/23411/fd/33: broken symbolic link to `/oradata/DATAPRE/file.dbf (deleted)'
此时有两种解决办法,方法一比较粗暴,直接kill 掉这个进程,但如果不能杀死进程的话,方法二比较优雅,清空这个fd的内容。

$ echo > /proc/23411/fd/33

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值