rsync has been heavily used in server daily backup.I am not going to list all option of rsync. i just don’t want to backup some useless file such as cache and log file.
In a typical backup situation, you might want to exclude one or more files (or directories) from the backup. You might also want to exclude a specific file type from rsync.
To exclude a special directory,take a look at the command below:
rsync -avze 'ssh -p7788' --exclude 'dir_abc' /home/www root@ip:/home/bak/
This command will not sync the /home/www/dir_abc
You can use * to match multiple directory to exclude like this:
rsync -avze 'ssh -p7788' --exclude 'dir_*' /home/www root@ip:/home/bak/
You can also use multiple –exclude option to exclude:
rsync -avze 'ssh -p7788' --exclude 'dir_abc' --exclude 'webcache' --exclude '*.log' /home/www root@ip:/home/bak/
Keep in mind that rsync will always treat the value of the –exclude option as relative to the bakup dir even though you specified a absolute path,so
if there is a dir1 directory in /home/www
rsync -avze --exclude '/home/www/dir1' /home/www /home/bak
rsync will explain /home/www/dir1 as /home/www/home/www/dir1,but this is not what you want.when you specified the path for –exclude option,make sure it’s relative to the source data diretory.this action will not be affected by add / to the exclude path.