7.2. Filesystem Usage

Many reports are currently talking about how cheap storage has gotten, but if you're like most of us it isn't cheap enough. Most of us have a limited amount of space, and need to be able to monitor it and control how it's used.

7.2.1. The df command

The df is the simplest tool available to view disk usage. Simply type in df and you'll be shown disk usage for all your mounted filesystems in 1K blocks
user@server:~> df Filesystem 1K-blocks Used Available Use% Mounted on /dev/hda3 5242904 759692 4483212 15% / tmpfs 127876 8 127868 1% /dev/shm /dev/hda1 127351 33047 87729 28% /boot /dev/hda9 10485816 33508 10452308 1% /home /dev/hda8 5242904 932468 4310436 18% /srv /dev/hda7 3145816 32964 3112852 2% /tmp /dev/hda5 5160416 474336 4423928 10% /usr /dev/hda6 3145816 412132 2733684 14% /var

You can also use the -h to see the output in "human-readable" format. This will be in K, Megs, or Gigs depending on the size of the filesystem. Alternately, you can also use the -B to specify block size.

In addition to space usage, you could use the -i option to view the number of used and available inodes.
user@server:~> df -i Filesystem Inodes IUsed IFree IUse% Mounted on /dev/hda3 0 0 0 - / tmpfs 31969 5 31964 1% /dev/shm /dev/hda1 32912 47 32865 1% /boot /dev/hda9 0 0 0 - /home /dev/hda8 0 0 0 - /srv /dev/hda7 0 0 0 - /tmp /dev/hda5 656640 26651 629989 5% /usr /dev/hda6 0 0 0 - /var

7.2.2. The du command

Now that you know how much space has been used on a filesystem how can you find out where that data is? To view usage by a directory or file you can use du. Unless you specify a filename du will act recursively. For example:
user@server:~> du file.txt 1300 file.txt
Or like the df I can use the -h and get the same output in "human-readable" form.
user@server:~> du -h file.txt 1.3M file.txt

Unless you specify a filename du will act recursively.
user@server:~> du -h /usr/local 4.0K /usr/local/games 16K /usr/local/include/nessus/net 180K /usr/local/include/nessus 208K /usr/local/include 62M /usr/local/lib/nessus/plugins/.desc 97M /usr/local/lib/nessus/plugins 164K /usr/local/lib/nessus/plugins_factory 97M /usr/local/lib/nessus 12K /usr/local/lib/pkgconfig 2.7M /usr/local/lib/ladspa 104M /usr/local/lib 112K /usr/local/man/man1 4.0K /usr/local/man/man2 4.0K /usr/local/man/man3 4.0K /usr/local/man/man4 16K /usr/local/man/man5 4.0K /usr/local/man/man

If you just want a summary of that directory you can use the -s option.
user@server:~> du -hs /usr/local 210M /usr/local

7.2.3. Quotas

For more information about quotas you can read The Quota HOWTO .