rsync同步文件,排除多个文件/目录

转:http://lxsym.blog.51cto.com/1364623/831393/

http://www.jb51.net/article/39468.htm

root@bananapi:/mnt/smallinchDisk# rsync -aivhP -e 'ssh -p22' pirecord/ root@192.168.199.133:/volume1/pirecord/

使用rsync -aP --exclude=upload 只能排除upload文件/目录。
如果要排除多个文件/目录,怎么办?
  那只能建一个exclude.list,里面填写要排除的目录(一行一个文件/目录),然后rsync -aP --exclude-from=“exclude.list“

如:rsync -aP  --exclude-from=/root/exclude.list 192.168.113.118::web_bak/www/ /data/server/www/    (从118同步数据到本机)

补充
     --exclude=PATTERN       exclude files matching PATTERN
     --exclude-from=FILE     read exclude patterns from FILE
     --include=PATTERN       don't exclude files matching PATTERN
     --include-from=FILE     read include patterns from FILE

今天在配置服务器同步额时候,需要排除一些不经常更新或文件夹内容过多的,提高同步效率,经过测试通过rsync的exclude-from就可以实现

假设最开始的命令是这样的 
rsync -e 'ssh -p 30000' -avl --delete --stats --progress demo@123.45.67.890:/home/demo /backup/ 
一、排除单独的文件夹和文件
要排除sources文件夹,我们可以添加 '--exclude' 选项:
--exclude 'sources' 
命令是这样的: 
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude 'sources' demo@123.45.67.890:/home/demo /backup/
要排除 "public_html" 文件夹下的 "database.txt" 文件: 
--exclude 'public_html/database.txt' 
命令是这样的: 
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude 'sources' --exclude 'public_html/database.txt' demo@123.45.67.890:/home/demo /backup/
二、使用 '--exclude-from' 排除多个文件夹和文件
建立文件: 
/home/backup/exclude.txt
在里面定义要排除的文件夹和文件
sources 
public_html/database.* 
downloads/test/*
经过测试一般 
文件夹 
uploads 
download/softs/

使用指令: 
--exclude-from '/home/backup/exclude.txt'
最后的命令如下: 
rsync -e 'ssh -p 30000' -avl --delete --stats --progress --exclude-from '/home/backup/exclude.txt' demo@123.45.67.890:/home/demo /backup/
rsync如何实现同步目标路径下的目录,不同步路径下的文件 ,只想同步目录 

复制代码代码如下:rsync -av --delete -f '+ */' -f '- *' SRC/ DEST/ 
    A+
发布日期:2015年12月24日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: