现象:
df -h 时发现磁盘使用率90%,但是 du -sh 磁盘仅使用了大概50%的空间。
这是因为直接删除了一个被某个进程打开的文件,实际句柄并没有被释放导致。
排查方法:
sudo lsof | grep -i delete > lsof.delete
less lsof.delete 其中第二列为PID,倒数第三列为大小,最后一列为未释放句柄的文件
解决办法:
重启对应的进程(楼上的PID)
若进程不能随意重启,可选择输入重定向清空该文件
永久解决:
定期关闭进程并移走或删除文件
一般这类文件为日志,可通过日志轮训来切割日志,或不记录日志
猜想:
还有可能是某块盘,未挂到分区之前已经写入了数据,然后又挂到分区
这样会导致已经写入的数据会存在但看不到,df和du看到的数据也不一样