rsync通过include与exclude实现精确同步

说明:
有一个目录/var/www/test/public/下面,有很多文件、目录,但我只需要同步其中的2个目录(js,css)。用exclude将其它的文件,目录排除当然是可以的,但因为其它文件,目录非常多,在exclude中排除明显太费时;或2行rsync直接同步/var/www/test/public/js,/var/www/test/public/css也是可以的。
类似rsync -nrv /var/www/feibo/fbtime_in/public/js /tmp/test/public这样,写2行
但如果我只想要1行rsync同步/var/www/test/public目录呢。这里,我就需要先include-from指定需要同步的文件或目录,exclude将/var/www/test/public所有文件、目录排除掉

实现:
1.编写/root/shell/test.include文件

# cat /root/shell/test.include
js
css

 
2.rsync同步指定文件,目录

# rsync -nrv  --include-from=/root/shell/test.include --exclude=/* /var/www/test/public/ /tmp/test/public
-n, --dry-run               perform a trial run with no changes made  //干跑,光显示哪些文件目录会被rsync而不运行,用于测试非常方便
-r, --recursive             recurse into directories  //详细模式输出
-v, --verbose               increase verbosity  //对子目录以递归模式处理

参照网上写的,rsync -nrv –include-from=/root/shell/test.include –exclude=* /var/www/test/public/ /tmp/test/public,发现任何文件都没有同步。原来–exlucde=*是不行的,需要指定–exclude=/*。估计意思是指当前目录/var/www/test/public/下的所有文件目录。–exclude=*/则是指定当前目录/var/www/test/public/下的所有目录。
这里要注意/var/www/test/public/需要添加最后的/

附录:
附录1.执行的结果,可以看到只有js,css目录被rsync

sending incremental file list
css/animate.css
css/b
css/global.css
css/global.css_bak
js/a
js/feibo.js
js/feibo.js_bak
js/global.js
js/global.js_bak
js/jquery-1.7.2.min.js
js/jquery-1.8.0.min.js
js/json2.min.js
js/swfupload.js
js/swfupload.swf
js/swfupload_fp9.swf
js/swfuploadhandlers.js
js/WdatePicker/WdatePicker.js
js/WdatePicker/calendar.js
js/WdatePicker/lang/en.js
js/WdatePicker/lang/zh-cn.js
js/WdatePicker/lang/zh-tw.js
js/WdatePicker/skin/WdatePicker.css
js/WdatePicker/skin/datePicker.gif
js/WdatePicker/skin/default/datepicker.css
js/WdatePicker/skin/default/img.gif
js/WdatePicker/skin/whyGreen/bg.jpg
js/WdatePicker/skin/whyGreen/datepicker.css
js/WdatePicker/skin/whyGreen/img.gif
js/zero/ZeroClipboard.as
js/zero/ZeroClipboard.fla
js/zero/ZeroClipboard.js
js/zero/ZeroClipboard.swf
js/zero/ZeroClipboard10.as
js/zero/ZeroClipboard10.fla
js/zero/ZeroClipboard10.swf

sent 1045 bytes  received 126 bytes  2342.00 bytes/sec
total size is 947225  speedup is 808.90 (DRY RUN)

发表评论

邮箱地址不会被公开。 必填项已用*标注