Unix – disk and file size monitoring with du, df and stat

du – file space usage

GB sized files and directories

du -xh DIRPATH |egrep "^[0-9\.]+[GT]\s"

# Examples
du -xh ~/ |egrep "^[0-9\.]+[GT]\s"

sudo du -xh / |egrep "^[0-9\.]+[GT]\s"

Size Of Directory and Disk Space

du -s .archived/
du –sk

# k: output in in KB
# x=> expands, only on the local file system – doesn’t follow NFS Links

# GB and TB files and dir
du -xh ~/ |egrep "^[0-9\.]+[GT]\s"

# MB files and dir
du -xh ~/ |egrep "^[0-9\.]+M\s"

# KB files and dir
du -xh ~/ |egrep "^[0-9\.]+K\s"

Flat @directory level

du -Sh |egrep "^[0-9\.]+[GT]\s"
du -x --max-depth=1 –h
du -Shx |egrep "[0-9\.]+[GT]"

df – disk free

df -h

df –help

Usage: df [OPTION]... [FILE]...
Show information about the file system on which each FILE resides,
or all file systems by default.

Mandatory arguments to long options are mandatory for short options too.
  -a, --all             include dummy file systems
  -B, --block-size=SIZE  scale sizes by SIZE before printing them.  E.g.,
                           `-BM' prints sizes in units of 1,048,576 bytes.
                           See SIZE format below.
      --total           produce a grand total
  -h, --human-readable  print sizes in human readable format (e.g., 1K 234M 2G)
  -H, --si              likewise, but use powers of 1000 not 1024
  -i, --inodes          list inode information instead of block usage
  -k                    like --block-size=1K
  -l, --local           limit listing to local file systems
      --no-sync         do not invoke sync before getting usage info (default)
  -P, --portability     use the POSIX output format
      --sync            invoke sync before getting usage info
  -t, --type=TYPE       limit listing to file systems of type TYPE
  -T, --print-type      print file system type
  -x, --exclude-type=TYPE   limit listing to file systems not of type TYPE
  -v                    (ignored)
      --help     display this help and exit
      --version  output version information and exit

Display values are in units of the first available SIZE from --block-size,
and the DF_BLOCK_SIZE, BLOCK_SIZE and BLOCKSIZE environment variables.
Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).

SIZE may be (or may be an integer optionally followed by) one of following:
KB 1000, K 1024, MB 1000*1000, M 1024*1024, and so on for G, T, P, E, Z, Y.

Report df bugs to bug-coreutils@gnu.org
GNU coreutils home page: 
General help using GNU software: 
For complete documentation, run: info coreutils 'df invocation'

Check File Size every 10 seconds – start session in screen

screen
while [ 1 ]; do size=$(stat -c %s myfile.db); printf "%s %s\n" $size "$(date)"; sleep 10; done >> /tmp/filesze.txt

Check File Size every 10 seconds – with nice date formatting

screen
while [ 1 ]; do size=$(stat -c %s myfile.db); printf "%s %s\n" $size "$(date +"%Y-%d-%m %H:%M Week %V %A")"; sleep 1; done;

Output

248471 2013-18-01 00:43 Week 03 Friday
248471 2013-18-01 00:43 Week 03 Friday

References

1. Simple IOTop: http://www.ubuntugeek.com/iotop-simple-top-like-io-monitor.html

man du

DU(1)                          User Commands                            DU(1)

NAME
       du - estimate file space usage
SYNOPSIS
       du [OPTION]... [FILE]...
       du [OPTION]... --files0-from=F

DESCRIPTION
       Summarize disk usage of each FILE, recursively for directories.

       Mandatory arguments to long options are mandatory for short options too.

       -a, --all
              write counts for all files, not just directories

       --apparent-size
              print  apparent sizes, rather than disk usage; although the apparent size is usually smaller, it may be larger
              due to holes in (`sparse') files, internal fragmentation, indirect blocks, and the like

       -B, --block-size=SIZE
              scale sizes by SIZE before printing them.  E.g., `-BM' prints sizes in units of  1,048,576  bytes.   See  SIZE
              format below.

       -b, --bytes
              equivalent to `--apparent-size --block-size=1'

       -c, --total
              produce a grand total

       -D, --dereference-args
              dereference only symlinks that are listed on the command line

       --files0-from=F
              summarize  disk  usage  of  the  NUL-terminated file names specified in file F; If F is - then read names from
              standard input

       -H     equivalent to --dereference-args (-D)

       -h, --human-readable
              print sizes in human readable format (e.g., 1K 234M 2G)

       --si   like -h, but use powers of 1000 not 1024

       -k     like --block-size=1K

       -l, --count-links
              count sizes many times if hard linked

       -m     like --block-size=1M

       -L, --dereference
              dereference all symbolic links

       -P, --no-dereference
              don't follow any symbolic links (this is the default)

       -0, --null
              end each output line with 0 byte rather than newline

       -S, --separate-dirs
              do not include size of subdirectories

       -s, --summarize
              display only a total for each argument

       -x, --one-file-system
              skip directories on different file systems

       -X, --exclude-from=FILE
              exclude files that match any pattern in FILE

       --exclude=PATTERN
              exclude files that match PATTERN

       -d, --max-depth=N
              print the total for a directory (or file, with --all) only if it is N or fewer levels below the  command  line
              argument;  --max-depth=0 is the same as --summarize

       --time show time of the last modification of any file in the directory, or any of its subdirectories

       --time=WORD
              show time as WORD instead of modification time: atime, access, use, ctime or status

       --time-style=STYLE
              show times using style STYLE: full-iso, long-iso, iso, +FORMAT FORMAT is interpreted like `date'

       --help display this help and exit

       --version
              output version information and exit

       Display  values  are  in  units  of the first available SIZE from --block-size, and the DU_BLOCK_SIZE, BLOCK_SIZE and
       BLOCKSIZE environment variables.  Otherwise, units default to 1024 bytes (or 512 if POSIXLY_CORRECT is set).

       SIZE may be (or may be an integer optionally followed by) one  of  following:  KB  1000,  K  1024,  MB  1000*1000,  M
       1024*1024, and so on for G, T, P, E, Z, Y.

PATTERNS
       PATTERN  is  a shell pattern (not a regular expression).  The pattern ?  matches any one character, whereas * matches
       any string (composed of zero, one or multiple characters).  For example, *.o will match any files whose names end  in
       .o.  Therefore, the command

              du --exclude='*.o'

       will skip all files and subdirectories ending in .o (including the file .o itself).

AUTHOR
       Written by Torbjorn Granlund, David MacKenzie, Paul Eggert, and Jim Meyering.

REPORTING BUGS
       Report du bugs to bug-coreutils@gnu.org
       GNU coreutils home page: 
       General help using GNU software: 
       Report du translation bugs to 

COPYRIGHT
       Copyright   ©   2011   Free   Software   Foundation,   Inc.    License   GPLv3+:   GNU   GPL   version   3  or  later
       .
       This is free software: you are free to change and redistribute it.  There is NO WARRANTY, to the extent permitted  by
       law.

SEE ALSO
       The  full documentation for du is maintained as a Texinfo manual.  If the info and du programs are properly installed
       at your site, the command

              info coreutils 'du invocation'

       should give you access to the complete manual.



GNU coreutils 8.12.197-032bb                           September 2011                                                  DU(1)