I’m new to rsync and have read a bit about excluding files and directories but I don’t fully understand and can’t seem to get it working.
I’m simply trying to run a backup of all the websites in a server’s webroot but don’t want any of the CMS’s cache files.
Is there away to exclude any directory named cache?
I’ve tried a lot of things over the weeks (that I don’t remember), but more recently I’ve been trying these sorts of things:
sudo rsync -avzO -e --exclude *cache ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/
and this:
sudo rsync -avzO -e --exclude cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/
and this:
sudo rsync -avzO -e --exclude */cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/
and this:
sudo rsync -avzO -e --exclude *cache/ ssh username@11.22.33.44:/home/ /Users/username/webserver-backups/DEV/home/
Sorry if this is easy, I just haven’t been able to find info that I understand because they all talk about a path to exclude.
It’s just that I don’t have a specific path I want to exclude – just a directory name if that makes sense.
should work like peaches. I think you might be confusing some things since
-erequires an option (like-e "ssh -l ssh-user"). Edit on looking at your command lines a little closer, it turns out this is exactly your problem. You should have saidalthough you could just drop
-e sshsince ssh is the default.I’d also recommend that you look at the filter rules:
That way you can include .rsync-filter files throughout your directory tree, containing things like
This makes things way more flexible, make command lines more readable and you can make exceptions inside specific subtrees.