`
guoyanxi
  • 浏览: 272071 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

df与du命令输出区别

阅读更多
1、正常情况下,df和du输出结果都会有差距
du -s命令通过将指定文件系统中所有的目录、符号链接和文件使用的块数累加得到该文件系统使用的总块数;
而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数。
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等。这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data。
du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data。
因此正常情况下,df计算的USED空间会比du计算的结果要稍大。
2、异常情况下,df计算的USED空间会比du大很多
这也是Rocket说的之前碰到的问题,df查看结果文件系统100%使用了,而du的结果是还有6GB空闲的,就这么个问题硬件厂商一个SUPPORT居然不知道怎么解释,这也是让我好奇晚上回来查查看究竟的原因,结果GOOGLE一下就有了,呵呵。
原因在于du是以文件名、目录名为依据计算空间使用的,而df是以硬盘块使用情况来计算空间使用的。
当一个应用程序正在写一个大文件的时候,我们RM或者MV了这个文件(UNIX是允许这么干的,WINDOWS在这一点上傻有傻福),应用程序会占有句柄,并根据句柄所指磁盘位置直接写磁盘,而不会检查该文件是否被删除。
因此就会产生上述的问题。具体到Oracle层面,可能发生这种情况的有:Oracle因为某种原因在生成很大的TRACE文件,可能导致/oracle等目录满,如果此时直接RM或MV掉该TRACE文件会发现空间并不会释放,进而可能导致Oracle数据库DOWN机。
解决办法:使用“> tracefile.trc”命令清空掉该文件,如果需要保留TRACE文件便于事后分析问题,可以使用CP先复制该文件到其他地方,然后清空掉原来的文件。
关于df和du的输出差别原文解释如下:
Problem Definition
------- ----------
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.
Explanation Summary
----------- -------
When you open a file, you get a pointer. Subsequent writes to this file
references this file pointer. The write call does not check to see if the file
is there or not. It just writes to the specified number of characters starting
at a predetermined location. Regardless of whether the file exist or not, disk
blocks are used by the write operation.
The df command reports the number of disk blocks used, while du goes through the
file structure and reports the number of blocks used by each directory. As
far as du is concerned, the file used by the process does not exist, so it does
not report blocks used by this phantom file. But df keeps track of disk blocks
used, and it reports the blocks used by this phantom file.
分享到:
评论

相关推荐

    Linux 命令每天必学(34)之du命令

    Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. du /bin和du -s /bin有什么区别呢? -s 就是summary, 显示该目录占用空间的...

    一天一个shell命令 linux好管家-磁盘-du命令详解

    du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。 语法 du [选项][文件] 选项 -a或-all 显示目录中个别文件的大小。 -b或-bytes 显示...

    linux常用命令大全

    cat:连接文件并打印到标准输出设备上 grep:在文件中查找特定模式 chmod:改变文件权限 chown:改变文件所有者 man:查看命令的手册页 ps:显示当前进程状态 kill:结束进程 top:显示系统资源使用情况 df:显示...

    Linux基础知识与系统管理教学课件-pdf.rar

    9.2.1 文件系统管理-文件系统常用命令-df、du、fsck、dumpe2fs 9.2.2 文件系统管理-文件系统常用命令-挂载命令 9.2.3 文件系统管理-文件系统常用命令-挂载光盘与U盘 9.2.4 文件系统管理-文件系统常用命令-支持NTFS...

    Linux基础知识与系统管理视频.rar

    9.2.1 文件系统管理-文件系统常用命令-df、du、fsck、dumpe2fs 9.2.2 文件系统管理-文件系统常用命令-挂载命令 9.2.3 文件系统管理-文件系统常用命令-挂载光盘与U盘 9.2.4 文件系统管理-文件系统常用命令-支持NTFS...

    Shell脚本学习笔记

    1.4.3使用du命令 27 1.5 操作数据文件 28 1.5.1 数据排序(sort) 28 1.5.2 搜索数据 (grep) 30 1.5.3 压缩数据 30 1.5.4 归档数据(tar) 33 1.6 使用Linux环境变量 34 1.6.1 设置环境变量 34 1.6.2 默认的shell环境...

    Linux命令笔记

    df和du命令的区别 fsck [选项] 分区设备文件名 //文件系统修复命令 dumpe2fs 分区设备文件名 //显示磁盘状态命令 3:挂载命令 mount [选项] 设备文件名 挂载点 4:挂载光盘与U盘 文件系统/fdisk分区 1:fdisk...

    redhat linux教材20课程学习文档

    df和du 命令 reboot 命令 shutdown 命令 logout 命令 3.6 Shell的高级使用 3.6.1 管道和重定向(“|、>、>>、<”) 3.6.2 进程管理(fg/bg、ctrl-Z、 &、nohup) 3.6.3 模式匹配 3.6.4 特殊字符 3.7 环境变量 ...

    Linux非常常用的指令

    Linux常用指令归纳文件管理ls命令 – 显示目录下的内容和属性信息mkdir命令 – 创建目录cp命令 – 复制文件或目录mv命令...– 显示磁盘空间使用情况du命令 – 查看磁盘占用空间网络通信ssh命令 – 管理远程服务器ping命

    Linux 操作系统常用的命令.docx

    linux常用命令大全 文件操作: ls: 列出目录内容 mkdir: 创建目录 rmdir: 删除目录(仅限空目录) rm: 删除文件或目录(添加-r 参数可以递归删除目录) cp: 复制文件或目录 mv: 移动或重命名文件或目录 find: ...

    Linux磁盘管理解析 及 课后习题解答—-工坊学习记录–2.3

    如果du命令不指定单位的话,默认显示单位为“KB”。示例命令如下: -b:表示列出的值以B为单位输出。 -k:表示以KB为单位输出,这和默认不加任何选项的输出值是一样的。 -m:表示以MB为单位输出。 -h:表示系统...

    Linux 101 hacks (2nd)

    技巧94:du 命令 技巧95:lsof 命令 技巧96:sar 命令 技巧97:vmstat 命令 技巧98:netstat 命令 技巧99:sysctl 命令 技巧100:nice 命令 技巧101:renice 命令 第十三章 一些额外的技巧 额外技巧1:让cd 命令对...

    UbuntuChina12

    11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 ...

    Ubuntu权威指南(2/2)

    11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 ...

    Ubuntu权威指南(1/2)

    11.1.3 使用du命令检查目录 ??占用的存储空间 289 11.1.4 使用find命令找出超过 ??一定容量限制的文件 290 11.1.5 使用find命令找出并删除 ??长期闲置不用的文件 290 11.1.6 使用find命令找出并删除 ??core文件 292 ...

    unix实验报告.doc

    比较whoami 和who am i显示的结果区别,熟练使用cat、cd、chmod、ls、cp、ln、df、ps等命令。 2. 用vi编辑器,先在用户主目录中创建文件,编辑文件。并作统计文件大小,重新 编辑文件。字符串替换等工作 3. 用find...

    awesome-colorterm:精选出色的脚本和程序,可为终端输出着色

    另一个着色器(用python编写),用于美化您的日志文件或命令输出。 使用图形和颜色显示文件系统空间使用情况。 基于df 。 能够使用颜色,绘制图形并导出为CSV,HTML。 适用于bash和zsh 用于make输出着色的make的...

    Linux常用的命令。。。。。

    command1| command2 command1的输出是command2的输入 DNS全球通用的: 8.8.8.8 DHCP :动态分配IP地址 255.255.255 网络段 0 主机 ifconfig –a 查看所有网卡 mask 子网掩码,分辨网络地址,与主机地址 改IP地址: /...

    Linux复习题综合练习

    A : du B: df C: free D: vmstat 23、Linux 使用者的帐号、密码与群组的名称文件放在哪些文件里?(多选题) A: /etc/passwd B: /etc/shadow C: /etc/group D: /etc/users 24、暂停某用户帐号可以使用...

Global site tag (gtag.js) - Google Analytics