When using rsync to maintain incremental backups significant space can be
saved on the backup server by excluding directories that have non-critical
or transient data such as /tmp, /proc, /mnt, /cdrom, object and backup
files, and caches. The problem is getting rsync to include the directory
name but exclude its contents, a condition not clearly covered in rsync(1),
EXCLUDE PATTERNS.

I use a separate backup server and pull from LAN clients but any model
should. To test, add '-n -vv' to your rsync command and grep for exclude
and include statements. Feedback: rsync at nsr500 dot net.

Remote client example:
rsync -nvva --stats --delete --exclude-from=<file> -e ssh \
<client>:/ /<rsync_dir>/<client>/ | egrep '^excl|^incl'

The following rsync exclude file works on my RH 7.3 (2.4.23) and RH 6.2
(2.2.25) based systems for rsync 2.5.4. You may have to edit for other
distributions, especially non-linux or non-standard file system layouts.

--- rsync exclude file start ---

### transient directories - contents
### tmp ###
+ tmp/
- **/tmp/**
+ /tmpfs/
- /tmpfs/**
### transient ###
+ /proc/
- /proc/**
+ /mnt/
- /mnt/**
+ /cdrom/
- /cdrom/**
### cache ###
# mozilla
+ Cache/
- **/Cache/**
# ccache.samba.org
+ ccache/
- **/ccache/**
+ .ccache/
- **/.ccache/**
# others
+ cache/
- **/cache/**
+ xover-cache/
- **/xover-cache/**
### obj ###
# kernel build
- usr/src/**.o
# special library .o (may be RH specific?)
+ usr/*/lib/**.o
+ usr/lib/**.o
# all others
- *.o
### backup ###
- *~

--- rsync exclude file end ---