df 和 du 命令显示不一致?
常见原因
1、有程序打开了文件,此文件被删除,但是程序没关闭,此文件所占用空间未释放。通过lsof命令可确认此情况
1 |
|
2、挂载点下有子目录被再次挂在到别处,这种情况下会隐藏原目录内容。
- 什么是有嵌套挂载?
系统盘目录是挂在到根目录/的,但是数据盘是挂在到根目录下的/data目录,这时就是嵌套挂载。
- 举例说明
例如/data目录原来有5G数据,但是此时将 数据盘vdb挂在到/data目录,此时du统计不到原/data目录的5G数据。
这时我们想要在不卸载数据盘的情况下确认根目录下的data目录原本是否有数据,则需要bind挂载它的上层目录/:
1 |
|
3、对于共享文件系统,可能会被其他服务器挂载了,请检查另外的服务器是否存在以上1和2 的场景
4、xfs文件系统异常
如果是xfs文件系统,已排除上诉3种情况,重启机器后,空间还未释放,可以检测下/var/log/messages日志文件是否有文件系统相关报错,在确保数据已备份的情况下,使用 xfs_repair 命令修复。
df 和 du 命令显示不一致?
https://92cloud.cn/posts/2312.html