df du出现统计大小差异的原因及解决方案

df 用于检查硬盘的使用情况

du 用于检查文件的占用空间情况

 

两个命名从不同维度去实现对硬盘使用情况的统计,所以数值在一定情况下会产生差异,以下是我根据日常工作总结出来的四种情况:

1.文件被删除但是有进程占用,使用lsof |grep deleted查看占用                             du<df
2.文件被删除但是按方法一找不到进程占用,目前个人遭遇到的是因为NFS服务导致,重启NFS即可,如果出现问题可以使用fuser占用 du<df
3.文件损坏  du -h会出现cannot access 使用fsck尝试修复                                     du>df
4.文件系统碎片导致 可以使用xfs_db或者fsck.ext4 查看系统碎片状态再酌情处理    du<df