起因:
系统盘容量报警, 查了下系统盘
df -h, 显示系统盘总量20G,已用17G.
然后 sudo du -x了下, 显示只用了11G.
网上查到了两个原因:
1.文件被删除时,有别的进程正在使用它(占有句柄)
2.将一个目录挂在到一个新的设备(硬盘)上之前,这个目录里面已经有数据.
第一个问题已经kill过相关进程,lsof | grep deleted已经为空, 但du还是11G.
第二个问题不知道怎么搞, 因为机器的几个盘都是以前其他人加的,我也不知道那个盘挂载前是否有文件.问题:
1.df -h和du不一致除了上面两个原因还会不会有其他原因
2.能否判断哪个盘挂载前是否有文件, 怎么查. 
因为有好几个盘,也有服务在上面跑,想确定了哪个盘有问题再去卸载.

解决方案 »

  1.   

    你可以用lsof |grep delete 查看已经删除的文件,空间有没有释放,没有的话kill掉pid,空间立即释放。
      

  2.   

    还有检查下该目录下有没有隐藏文件。
    另外再用du --max-depth=1 -mh /
    仔细查看下每个目录大小是否正常。
      

  3.   

    这个问题估计重启下就解决了,服务器不能重启的话,看下进程,没用的kill
      

  4.   

    用mount可看下有没有挂载。