Re: Different reported sizes with df and du

[email protected] (Bob Proulx)
Newsgroups gmane.comp.gnu.fileutils.bugs
Message-ID <[email protected]>
Thomas Preissler <[email protected]> [2002-10-21 14:24:43 +0200]:
> I have encountered a strange problem with df 4.0.

Yes, a strange problem.  I can't recreate it here.

> df shows me that a partition is nearly full. But when I use other
> programs like du or calculate it by hand, other values are shown.
>   host:~ # df -h
>   /dev/hda5             3.8G  3.4G  162M  96% /var
>   host:~ # du /var -sh
>   1.8G    /var

Almost a 2x factor of difference.  I have to ask, might part of your
data under /var be mounted on a different filesystem?

> Counting filesize by hand shows me:
> 
>   host:~ # for s in $(find /var -printf "%s\n") ; do sum=$(echo "$sum+$s" | bc); done; echo $sum
>   1904892706

Huh?  Did you miss something when posting that command?  It seems only
half constructed.

I tried a similar experiment on my system.  Here is my result.

  du -sb /var
  329510912       /var

  sum=0; for f in $(find /var -print0 | xargs -r0 ls -ld | awk '{print$5}');do sum=$(expr $sum + $f); done ; echo $sum
  328859152

  find /var -printf "\n" | wc -l
     6460

Since du really reports in block size as reported by the filesystem
some difference would be expected.  This is typically a 512 byte chunk
on classic filesystems but will be different on newer filesystems.
Also, optimizations of storing data in the inode itself, etc.  The
above result was on ext2.

Your result seems really unaccountable.  I can't explain it.  If it
would be possible for you to help by debugging in the code it would be
much appreciated.

Bob
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.