使用du与df命令查看磁盘容量不一致


在Linux系统的ECS实例中,执行du与df命令查看磁盘容量,出现不一致的现象

执行df -h命令查看文件系统的使用率,可以看到500G
执行du / -sh 命令只使用250G
执行du和df命令显示的结果不一致,df比du命令显示的数据大很多。
问题原因 以下为五种问题的原因:

用户删除了大量的文件后,du命令就不会在文件系统目录中统计这些文件。如果此时还在运行中的进程持有这个已经被删除的文件句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改,
df命令仍会统计这个被删除的文件。 通过lsof命令查询处于deleted状态的文件,被删除的文件在系统中被标记为deleted。如果系统有大量deleted状态的文件,会导致du和df命令统计结果不一致。
可在opt目录下执行如下命令查看。 lsof
|grep deleted Linux系统磁盘分区有保留区的概念,会给root或指定用户预留5%或更大的空间,当使用到这块保留区的空间时,fdisk命令的计算将会是负数。ext文件系统(包括ext2、ext3、ext4)都会默认预留5%的磁盘空间,
使用root用户维护系统或记录系统关键日志使用。 当用du
-sh *命令来统计目录总容量时,如果该路径下包含隐藏文件,是不会包含在统计结果里的。 由于删除了大量小文件,导致inode释放出现问题。 由于数据盘挂载前该路径下就存在文件,挂载后用du无法查询到原路径文件。

 转:https://www.tuicool.com/wx/NV7rU3y


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM