问题:某天发现某台机器df -h已用磁盘空间为90G,而du -sh /*显示所有使用空间加起来才30G,囧。

原因:可能某人直接用rm删除某个正在写的文件,导致文件删了但磁盘空间没释放的问题

解决:

1)最简单重启系统或者重启相关服务。

2)干掉进程

/usr/sbin/lsof|grep deleted
ora 25575 data 33u REG 65,65 4294983680 /oradata/DATAPRE/UNDOTBS009.dbf (deleted)

从lsof的输出中,我们可以发现pid为25575的进程持有着以文件描述号(fd)为 33打开的文件/oradata/DATAPRE/UNDOTBS009.dbf。在我们找到了这个文件之后可以通过结束进程的方式来释放被占用的空 间:echo > /proc/25575/fd/33

3)删除正在写的文件一般用 cat /dev/null > file