免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 13282 | 回复: 4
打印 上一主题 下一主题

使用df -h命令查看分区空间信息不准确 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-17 17:49 |只看该作者 |倒序浏览
各位大侠!
    小弟装的RHEL5最近发现一个奇怪的问题:

我使用df -h查看分区使用情况/var分区显示已用4.7G,可是使用du -sh /var看到的目录大小却是2.6G,小弟百思不得其解,还望高人指点!!
[root@SH-SH1-CACHE-01 ~]# df -h
Filesystem            容量  已用 可用 已用% 挂载点
/dev/sda6             9.9G  193M  9.2G   3% /
/dev/sda1              99M   12M   83M  12% /boot
none                  2.0G     0  2.0G   0% /dev/shm
/dev/sda8             5.0G   43M  4.7G   1% /home
/dev/sda3             9.9G  6.2G  3.2G  66% /opt
/dev/sda7             5.0G  997M  3.8G  21% /tmp
/dev/sda5             9.9G  1.4G  8.0G  15% /usr
/dev/sda2             9.9G  4.7G  4.8G  50% /var
/dev/sda10            1.3T  9.7G  1.3T   1% /data
[root@SH-SH1-CACHE-01 ~]# du -sh /var
2.6G    /var

论坛徽章:
0
2 [报告]
发表于 2008-12-17 20:34 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
3 [报告]
发表于 2008-12-17 21:01 |只看该作者
du是使用大小。df是占据大小,就像你新建一个1字节的文件,还是要占据4K的空间(簇的大小是4K的情况)

论坛徽章:
0
4 [报告]
发表于 2008-12-18 11:48 |只看该作者
This article explains how reporting disk usage du and reporting free disk space
on file systems df may show different numbers.

du
--

The du user command gives the number of kilobytes contained in all files and,
recursively, directories within each specified directory or file (filename).
If filename is missing, `.' (the current directory) is used.  A file which
has multiple links to it is only counted once.

EXAMPLE:

  system % du

  5    ./jokes
  33   ./squash
  44   ./tech.papers/lpr.document
  217  ./tech.papers/new.manager
  401  ./tech.papers
  144  ./memos
  80   ./letters
  388  ./window
  93   ./messages
  15   ./useful.news
  1211 .

Note that the last number, 1211 is the grand total (in kilobytes) for the
directory.

df
--

The df user command displays the following information:

  amount of disk space occupied by currently mounted file systems
  the amount of used and available space
  how much of the file system's total capacity has been used

Used without arguments, df reports on all mounted file systems.

EXAMPLE:

  system % df

  Filesystem  kbytes  used  avail  capacity  Mounted on
  /dev/ip0a    7445    4714 1986   70%       /
  /dev/ip0g   42277   35291 2758   93%       /usr

Note: used plus avail is less than the amount of space in the file system
(kilobytes) because the system reserves a fraction of the space in the file
system to allow its allocation routines to work well.  The amount reserved is
typically about 10%.  (This may be adjusted using the tunefs command.  Refer to
the man pages on tunefs( for more information.)  When all the space on a file
system, except for this reserve, is in use, only the super-user can allocate
new files and data blocks to existing files.  This, however, may cause the file
system to be over allocated.  When a file system is over allocated in this way,
df may report that the file system is more than 100% utilized.

If arguments to df are disk partitions (for example, /dev/ip0as or path names),
df produces a report on the file system containing the named file.  Thus, df
shows the amount of space on the file system containing the current directory.

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 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.

论坛徽章:
0
5 [报告]
发表于 2008-12-27 12:46 |只看该作者
谢谢大家,我现在明白了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP