df和du显示空间不一致,最新解决方案来了

下面的方法我基本可以保证,如果df和du显示空间不一致,除了普遍的解决方法外,网络上你根本搜索不到!除非你是linux高手!高手在此我们膜拜!

在分析df和du查到的结果不一样之前,我们先来了解下linux的df和du命令有什么不同。

这个大家可以从网上很直观的搜索到,一艘一大片,我们在这里还是要啰嗦一下,为下面的解决方案做铺垫。

现在我们假定存储空间有10G,而我们准备删除2G的数据,并假定这个文件为1.txt

df命令:通过文件系统快速的获取空间大小的信息,当我们删除一个文件时,这个文件不会立马从linux系统中消失,而是等系统的服务或程序等彻底不用此文件时,才会在系统中彻底被删除。而假如你删除了一个文件,此时的df依旧能统计到它占用存储的大小。

比如我们删除这个1.txt,然后我们的txt程序还正在打开使用这个文件,那么此时,df查到的剩余存储是8G。

du命令:简单的说,du和df一样,只不过是它不统计已经删除了的文件,比如删除1.txt,无论这个文件现在是否被使用,它都认为被删除了,此时运行du命令,查到的就是剩余空间是10G。

区别就是,是否统计到已经被删除的但还在被使用的文件。那么问题来了,如果df和du查到的结果不一样,我们一般会认为,是不是因为服务或者程序正在占用已经删除了的数据,于是网络上给了处理方法,利用如下命令:lsof |grep deleted 就可以查看到已经删除的,但是还没其他服务占用的文件。

图片是借用的网络上的,因为我的根本没有占用,如果你有上图的情况,那么就可以认为,不一样的原因是因为有已经删除的,但是被占用的文件,此时去百度搜索一下原因,比如说kill掉服务(会导致服务出现异常)、重启服务器或服务等,可以去搜一下。

但是问题来了,我的执行了上述命令后,并没有所说的上图的样子,而是如下图:

占用全部是0,我在网络上搜索了众多的资源,都没有说出最终的解决办法,因为大部分人认为,df和du显示空间不一致,都是因为有程序或服务占用造成的,而我的并没有占用,那么就不是这个原因,重启服务器或服务器根本不能解决这个问题。

重点来了!上面文章说过:df可以统计已经删除的但还在被使用的,du不统计已经删除的,那么如果损坏的文件会不会被统计呢?从解决这个问题上来讲,损坏的文件并不是被删除,而是还存在的资源,但是df却已经统计不到了,但du却可以统计到,这个问题真是弄得我心力憔悴,我是怎么发现这些文件已经损坏了呢?当然用du命令查看大文件时发现的。

命令是:du -h --max-depth=1

红框中的就是未被找到,暂时认为已经损坏的文件。

既然上面的方法不能解决,那么只能死马当活马医,看看是不是因为损坏的文件占用存储空间导致的df和du空间不一致的问题。

于是乎,我们利用修复命令修复一下文件系统:

命令如下: fsck -fyv /dev/vdb1 

/dev/vdb1 是磁盘,你的可能是别的,请自己查看。如果不能运行,那么还请取消挂载然umount /www,再运行 fsck -fyv /dev/vdb1,如果成功,说明就是这个原因导致的,此时你再次运行df和du已经一样,问题就找到了。成功后还请您再次重新挂载您的硬盘。

假如说,您不能umount 卸载您的硬盘,还请您vi /etc/fstab/ 看看是不是写入了挂载信息!这也是很多人没有告诉你的哈!

以上就是df和du显示空间不一致的解决方案,码了这么多字,还需要支持一下我们泰安人才招聘网www.tarczp.com,感谢您的浏览,以上只是我的解决方案,出了问题本博主概不负责!特此声明!

这三个命令是用来查看磁盘空间的,但是它们的输出结果有一些同,这就导致了磁盘空间显示一致的问题。 首先,du命令是用来查看目录或文件所占用的磁盘空间的,它的输出结果是以字节为单位的。而df命令则是用来查看磁盘分区的使用情况的,它的输出结果是以块为单位的。 其次,du命令df命令的参数也同。du命令后面跟的是目录或文件名,而df命令后面跟的是磁盘分区的挂载点。 最后,du命令df命令的输出结果格式也同。du命令的输出结果是一个目录或文件所占用的磁盘空间,它的单位可以是字节、千字节、兆字节等。而df命令的输出结果则是磁盘分区的总容量、已用容量、可用容量使用率,它的单位通常是千字节或兆字节。 所以,如果你使用du -sh命令来查看一个目录或文件所占用的磁盘空间,它的输出结果是以人类可读的格式显示的。而如果你使用df -h命令来查看磁盘分区的使用情况,它的输出结果也是以人类可读的格式显示的。但是,它们的单位同,所以输出结果可能会有一些差异。此外,df命令还可以使用-a参数来显示所有文件系统的磁盘使用情况,包括那些没有挂载的文件系统,这也会导致输出结果与du命令同。 综上所述,dudf命令的输出结果同,使用的参数单位也同,因此会导致磁盘空间显示一致的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

努力的阿江

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值