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.
分享到:
相关推荐
`df` 和 `du` 是在类 Unix 系统(如 Linux 和 macOS)中常用的命令行工具,用于监控文件系统的磁盘空间使用情况。这两个命令对于系统管理员来说至关重要,因为它们提供了关于存储资源的关键信息。 **df 命令详解:*...
#### du命令详解 **du**(disk usage)命令用于估计每个文件和目录所使用的磁盘空间。它默认输出每个文件或目录的块数,可以通过选项改变输出格式。 - **命令格式**:`du [选项]` - **常用选项**: - `-s`:总结...
Linux du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的. du /bin和du -s /bin有什么区别呢? -s 就是summary, 显示该目录占用空间的...
du命令也是查看使用空间的,但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间的查看,还是和df命令有一些区别的。 语法 du [选项][文件] 选项 -a或-all 显示目录中个别文件的大小。 -b或-bytes 显示...
当`du`和`df`的输出不同时,可能的原因有: 1. 文件系统缓存:Linux内核为了提高效率,会缓存文件和目录的元数据,这可能导致`du`和`df`的即时显示结果有差异。执行`sync`命令可以刷新缓存,使两者结果一致。 2. 软...
通过使用 Linux 命令 df 和 du,可以轻松地查看文件的属性,包括文件大小。 df 命令可以查看文件系统的大小、使用率、可用空间、挂载点等信息。但是,df 命令只能查看一级文件夹的大小和使用率,对文件却无能为力。...
Linux磁盘管理是系统管理员日常工作中不可或缺的一部分,而`df`命令则是用于检查Linux系统中文件系统的磁盘空间使用情况的工具。这个命令能够提供关于挂载在系统上的各个分区的详细信息,包括已用空间、可用空间以及...
本文将详细介绍 Linux 操作系统中六个重要命令:comm 命令、diff 命令、patch 命令、df 命令、du 命令和 time 命令。这些命令都是 Linux 系统中不可或缺的一部分,掌握这些命令对日常的系统维护和管理具有重要意义。...
四、du 和 df 的区别 du 命令统计文件大小相加,而 df 命令统计数据块使用情况。如果有一个进程在打开一个大文件的时候,这个大文件直接被 rm 或者 mv 掉,则 du 会更新统计数值,df 不会更新统计数值,直到这个...
top 命令的输出结果中,第一行主要信息是负载显示,分别是 1 分钟、5 分钟、15 分钟前到现在的任务队列的平均长度,一般与 CPU 数目相当为好,过大系统负载超额,反应慢。在 top 输出界面输入 u,会提示输入用户名,...
与df命令不同,du命令专注于目录和文件本身,能够提供每个目录及其子目录的磁盘使用情况。这对于查看具体某个文件夹(例如用户的主目录或下载文件夹)的占用空间非常有帮助。 du命令也支持-h参数,用于使输出结果以...
这份"HP UNIX命令与AIX UNIX命令对照表"提供了在两者之间转换操作时的重要参考。 首先,我们来讨论一些基本的命令,这些命令在HP UNIX和AIX中都广泛使用,但可能有一些细微的区别: 1. **ls**:列出目录内容。在HP...
* df 命令:用于显示磁盘的使用情况,包括总容量、可用空间、已用空间等信息。 * du 命令:用于显示当前目录或指定目录的磁盘使用情况。 * fsck 命令:用于检查和修复文件系统的错误。 网络管理命令 * ping 命令:...
du 命令用于显示目前的目录所占用的磁盘空间,df 命令用于显示目前磁盘剩余空间。 * du 命令不加任何参数,那么返回的是整个磁盘的使用情况。 * du -hs 指定目录 查看指定目录的总大小。 * du -hs ./* 查看当前目录...
आज,我们将介绍两个常用的命令来查看磁盘空间:df 命令和 du 命令。 一、使用 df 命令查看磁盘空间 df 命令用于显示磁盘的使用情况。基本语法为:`df [options] [file system]` 其中,options 可以是 `-h`、`-...
Linux 命令大全 Linux 命令大全是 Linux 操作系统中最常用的命令,包括信息显示命令、用户管理命令等。下面将对这些命令进行详细的解释。 信息显示命令 * uname:显示操作系统相关的信息命令,unix name 的简写,...
du命令用于报告磁盘空间使用情况。其基本语法为:du [文件名] 例如:du /path/to/file 5.file命令:探测文件和目录类型 file命令用于探测文件和目录类型。其基本语法为:file [文件名] 例如:file /path/to/file...
输入 `pwd` 命令,Linux 会输出当前目录。 2. `cd` 命令:改变所在目录 `cd` 命令用来改变所在目录。常用的选项和参数包括: * `cd /`:转到根目录中 * `cd ~`:转到 `/home/user` 用户目录下 * `cd /usr`:转到...
find命令可以搜索符合特定条件的目录或文件,du命令显示目录的大小,pwd命令显示当前工作目录的路径,ls命令则列出目录内容。 3.5 切换目录 cd命令用于改变当前工作目录。 3.6 删除目录 rmdir命令用于删除空目录。 ...