用户删除了大量的文件后,du命令就不会在文件系统目录中统计这些文件。如果此时还在运行中的进程持有这个已经被删除的文件句柄,那么这个文件就不会真正在磁盘中被删除,分区超级块中的信息也就不会更改, df命令仍会统计这个被删除的文件。 通过lsof命令查询处于deleted状态的文件,被删除的文件在系统中被标记为deleted。如...
方法/步骤 1 Linux系统的版本命令:cat /proc/version 2 使用du命令查看测试文件的大小,是1G命令:du -ksh tmp1G 3 使用tail命令打开文件tmp1G,并且不释放命令:tail -f tmp1G 4 在另一个终端中执行df命令,查看执行结果命令:df -h 5 执行du命令,查看执行结果命令:du -ksh 6 执行rm命令,删除文件tmp...
客户那里一台主机出了问题,df -h比du -h大了15G,邪门的很,google了一下。发现差异有两种。 1:meta data导致不一致,但是相差应该不会很大。顶天百M左右,就是i-node那些元数据占用掉的。 2:root删除应用程序正在调用的打开的文件,通常是清理日志的时候,直接删除,而这时句柄文件仍然存在。在df -h仍然显示空间...
原因在于du是以文件名、目录名为依据计算空间使用的,而df是以硬盘块使用情况来计算空间使用的。 当一个应用程序正在写一个大文件的时候,我们RM或者MV了这个文件(UNIX是允许这么干的,WINDOWS在这一点上傻有傻福),应用程序会占有句柄,并根据句柄所指磁盘位置直接写磁盘,而不会检查该文件是否被删除。 因此就会产生上...
du命令会对待统计文件逐个调用fstat,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。 3.情况模拟 首先查看当前磁盘情况,然后新建一个大小为1G的文件,模拟当时的日志。
du命令会对待统计文件逐个调用fstat这个系统调用,获取文件大小。它的数据是基于文件获取的,所以有很大的灵活性,不一定非要针对一个分区,可以跨越多个分区操作。如果针对的目录中文件很多,du速度就会很慢了。 df的工作原理: df命令使用的事statfs这个系统调用,直接读取分区的超级块信息获取分区使用情况。它的数据是基于分...
标准GNU工具coreutils中有俩程序df / du,他们都可以查看磁盘的使用情况。通常情况下他们的统计结果并不会相同,这是因为统计信息来源的差异。所以问题来了:在ext4文件系统下,有哪些可能的因素会带来统计信息的差异? Knowledge Background ext4 filesystem physical structure overview ...
du命令使用fstat系统调用,基于文件获取数据,可以跨多个分区操作,du不会统计被删除文件的信息;df命令使用statfs系统调用,直接读取分区的超级块信息,获取分区使用情况,如果运行中的进程持有被删除文件的句柄,分区超级块中的信息不会更改,df命令仍会统计被删除文件的信息,最终导致du和df命令统计结果不一致。 解决方案 您可...
du 命令的全称是 Disk Used ,它是统计磁盘有已经使用的空间。它是直接统计各各目录的大小,而不是从硬盘获得信息的。 通常会遇到两个情况: 1、du命令是用户级的程序,它不考虑元数据,而df命令则查看文件系统的磁盘分配图并考虑。df命令获得真正的文件系统数据,而du命令只查看文件系统的部分情况。
华为云帮助中心为你分享云计算行业信息,包含产品介绍、用户指南、开发指南、最佳实践和常见问题等文档,方便快速查找定位问题与能力成长,并提供相关资料和解决方案。本页面关键词:du命令。