之前的时候,有同事反馈,df -h查看磁盘空间大小的时候,发现和du -sh统计出来的数据不一致。有的时候,甚至相差几十个G。后面排查了一下,主要有2个原因导致:
1、已有文件被覆盖遮蔽住了:比如你的/data/sdg1目录下面有10G的文件,这个时候,你将U盘挂载到/data/sdg1目录下。那么你通过du -sh去统计的时候,/data/sdg1目录下原有的文件就被隐藏了。但是df -h去统计的时候,/data/sdg1里面原有的内容又能看见。
2、有个进程A正常向一个文件里面写数据,但是另一个进程B把这个文件给删了。这个时候,如果进程A一直向文件里面写数据,就会导致df -h统计的数据大于du -sh统计的数据。这种时候,可以通过查看哪些进程还在操作该文件,kill掉相关进程,存储空间就恢复正常了。