Q:

How to exclude a folder from rsync

I am trying to backup my home folder on my NAS drive. I am giving this:
rsync -Paz --exclude-from 'rsync-exclude.txt' /home/chris/ admin@192.168.1.65:LinuxHome

where rsync-exclude.txt has this content:
/home/chris/Downloads/*
/home/chris/Downloads/
/home/chris/Downloads/*.*

and it is in the same folder I execute rsync (home folder).
However the rsync tries to copy this folder, too.
What am I doing wrong?

A:

You are providing absolute paths in your exclude list.
With rsync, all exclude (or include!) paths beginning with / are are anchored to the "root of transfer". 
The root of transfer in this case is /home/chris. If you did:
rsync -Paz --exclude-from 'rsync-exclude.txt' / admin@192.168.1.65:
...then your exclusions should work (but you'd be copying everything else on that filesystem!).
But since you're just trying to sync your home directory, and there is no subdirectory of /home/chris named "home/chris/Downloads", rsync finds nothing that matches.
So try removing the /home/chris parts from your rsync-exclude.txt file.
Actually, you should just need a single line in the file:
/Downloads

Note that if you don't specify the leading /, and you happen to have other directories named "Downloads", those would also be excluded. I'm assuming you only want to exclude your "top-level" (relative to the source directory, aka the "root of transfer") Downloads directory, so you'll want the leading /.
THE EASIEST WAY (to exclude only a few paths)
If you only need to exclude one directory, just do this (avoiding a separate file):
rsync -Paz --exclude /Downloads /home/chris/ admin@192.168.1.65:LinuxHome

You can also chain together --exclude tags, like so:
rsync -Paz --exclude /Downloads --exclude '/Something Else' --exclude .hiddenFile /home/chris/ admin@192.168.1.65:LinuxHome

Note that since there's no slash, that one will exclude .hiddenFile from any every directory it copies!
But if you have more than a few exclusions, you're better off with --exclude-from and a file.
Note
I see that you got it right, but those new to rsync should note the slash at the end of /home/chris/
To quote the rsync man page, "You can think of a trailing / on a source as meaning 'copy the contents of this directory' as opposed to 'copy the directory by name'."
So if you left off that trailing slash, you would end up with a directory called chris within the target directory, containing everything from /home/chris (except the original Downloads directory, of course!).

