df -h统计的信息与du -sh不一致的原因(转)

 

有时候会遇到这样的问题:
df -h统计一个目录,显示有约100M可用空间,使用了5G;
而用du -sh统计该目录下的文件大小,却发现总共才占用了1G。
也就是说,二者统计结果差距巨大。

例如:

1、df -h /tmp/

结果:

Size Used Avail Use% Mounted on
3.9G 3.5G 220M 95% /tmp

2、du -sh /tmp/

结果:

132K    /tmp/

文章来源:http://www.codelast.com/

结果差异巨大。

引用网上的一段话,原因是这样的:

(1)This section gives the technical explanation of why du and df sometimes report different totals of disk space usage.
When a program that is running in the background writes to a file while the process is running, the file to which this process is writing is deleted.
Running df and du shows a discrepancy in the amount of disk space usage. The df command shows a higher value.
(2)The difference is that whenever an application has an open file, but the file is already deleted,
then it is counted in the df output (because the space is certainly not free) but not in du (because it is not being used by a file). 

如何查看是什么进程导致的问题?

假设你发现是 /tmp/ 目录不对劲,那么就这样就可以查看:

lsof | grep /tmp/

输出的结果中,注意某些含有“(deleted)”字样的记录,它们中的一部分就是罪魁祸首,将它们kill掉即可(如果可以重启这些进程所对应的服务的话,也有可能解决问题)。

http://www.codelast.com/?p=1066

 

汇总一些原理分析
实现原理:
du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;
df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
du是用户级程序,不考虑Meta Data(系统为自身分配的一些磁盘块)

ps:应用程序打开的文件句柄没有关闭的话,会造成df命令显示的剩余磁盘空间少。而du则不会。

[root@hadoop01 ~]# du -sh . [对当前目录下所有的目录和文件的大小进行汇总,-s表示汇总,-h表示以KB, MB, GB, TB格式进行人性化显示]
[root@hadoop01 ~]# du -sh *|grep [MG]|sort -nr  [筛选出大小为MB和GB级别的目录和文件,并降序排序]

 

时间: 2024-12-21 10:44:31

df -h统计的信息与du -sh不一致的原因(转)的相关文章

linux命令df中df -h和df -i的区别

在这里先讲讲linux命令df的资料: df 命令: linux中df命令的功能是用来检查linux服务器的文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息. 1.命令格式: df [选项] [文件] 2.命令功能: 显示指定磁盘文件的可用空间.如果没有文件名被指定,则所有当前被挂载的文件系统的可用空间将被显示.默认情况下,磁盘空间将以 1KB 为单位进行显示,除非环境变量 POSIXLY_CORRECT 被指定,那样将以512字节为单位进行显示.

帝国CMS统计当天信息发布信息数量的sql语句

帝国ECMS:统计当天信息发布数(SQL) select count(*) as title from [!db.pre!]ecms_news where isgood=1 and year(newstime)=year(now()) and month(newstime)=month(now()) and day(newstime)=day(now())

sed 格式化输出df -h

df -h|sed '1d;/ /!N;s/\n//;s/ \+/ /;' 1d------删除第一行 / /!N------没有空格的行执行N 例子中没有空格的行 /dev/mapper/vg_dsidealyy-lv_root/dev/mapper/vg_dsidealyy-lv_home s/\n//------pattern空间内的换行替换为空格 s/ \+/ /------N多空格替换为一个空格  

搞定 EXCEL数据统计错误信息

  最近帮一位同事用EXCEL将其班学生的各科成绩处理完毕后,通过打印机输出时有几名学生的总分处输出为"#VALUE!"(如图1),很不美观.天空软件站告诉大家这是因为这几名学生由于各种原因缺少某科成绩,用公式求总分时造成对应总分处显示"#VALUE!"的错误信息.通过笔者的摸索发现利用 EXCEL的"错误单元格的打印"操作完全可避免上述问题. 具体操作为:单击"文件→页面设置"命令,在出现的对话框中单击"工作表&q

EXCEL数据统计错误信息解决图文教程

  最近帮一位童鞋用EXCEL将其班学生的各科成绩处理完毕后,通过打印机输出时有几名学生的总分处输出为"#VALUE!"(如图1),很不美观.西西告诉大家这是因为这几名学生由于各种原因缺少某科成绩,用公式求总分时造成对应总分处显示"#VALUE!"的错误信息.通过小编的摸索发现利用 EXCEL的"错误单元格的打印"操作完全可避免上述问题. 具体操作为:单击"文件→页面设置"命令,在出现的对话框中单击"工作表"

苹果, Adobe Flash 和 H.264(信息图表)

nriqur Serrano 设计了这个横幅式的信息试图表,<苹果,http://www.aliyun.com/zixun/aggregation/9084.html">Adobe和H.264>,帮助解析苹果和Flash之间的冲突.在这两个大公司之间,有不少恩恩怨怨,即使在乔布斯<关于Flash的思考>之后,事情的发展仍然很不明朗. "苹果已经说了苹果的设备(主要是苹果iPhone和在iPad)不会再支持Flash,我将尽可能多的一些事实放在一起,包括苹果

从2014最热50信息图,分析出火爆原因

尽管你知道信息图是让品牌和企业曝光的绝佳方式,但你可能仍会好奇什么类型的信息图才是最吸引人的?在这篇文章中,我们将通过分析2014年网络上被网友分享最多的50张信息图,让大家进一步了解什么样的信息图才能让用户乐于分享,并获得病毒式传播. 转载总数 首先,来看看2014年社交网络上热门信息图转载次数的统计,以下统计数据由BuzzSumo这一社交媒体追踪服务分析工具得到. 从以上的数据中我们可以看出,那些最终成为热门的信息图在Facebook上的转载量最大,其次是Pinterest.因此,如果你想要

linux中查看各硬件资源信息的命令小结

1.显卡信息 dmesg | grep -i vga lspci | grep -i vga //查看显卡信息 2.dmidecode | grep -i 'serrial number' //查看主板信息,查看主板的序列号 3.CPU信息 #通过/proc文件系统 cat /proc/cpuinfo dmesg | grep -i cpu #通过查看开机信息 dmidecode -t processor 4.硬盘信息 fdisk -l //分区情况 df -h //大小情况 du -h //使

这是一篇最通熟易懂的Hadoop HDFS实践攻略!

本文主要帮您解决一下几个问题: HDFS是用来解决什么问题?怎么解决的? 如何在命令行下操作HDFS? 如何使用Java API来操作HDFS? 在了解基本思路和操作方法后,进一步深究HDFS具体的读写数据流程 学习并实践本文教程后,可以对HDFS有比较清晰的认识,并可以进行熟练操作,为后续学习Hadoop体系打好基础. 目录: 理论部分 HDFS 基本原理 文件读取.写入机制 元数据管理思路 实践部分 安装实践环境 Shell 命令行操作方式 Java API操作方式 一.HDFS基本原理 H