在实际的生生产环境中 项目同步是必不可少的,但是再同步文件的时候我只想同步指定的文件,不想同步配置文件,这就用到了 include 和 exclude
例:这是tp5框架的目录 同步的时候我只想同步 application下的目录 runtime下的不同步
( 带端口同步 rsync -e 'ssh -p 22' -avl /www/www/ root@192.168.1.146:/www/www/ )
实验:两台虚拟机 都安装rsync 这里不介绍了
1982.168.1.151 master主 192.168.1.146 slave 备份机
要将 192.168.1.151 服务器上的 /www/TP5 文件要同步到 192.168.1.146 /www/www
rsync -avz /www/TP5/ --include 'application/' --exclude '/*' root@192.168.1.146:/www/www/
如果多个文件
rsync -avz /www/TP5/ --include 'application/' --include 'public/' --exclude '/*' root@192.168.1.146:/www/www/
可以看到 开始同步了。注意注意
但是只写了个 --include 'application/' 没写 --exclude '/*' 导致整个文件全部都同步了,折腾了一上午
还有就是 --include-from和 --exclude-from 的用法
例
我要同步 admin api index mobile 我的api下有个配置文件我也不想让同步
配置文件内容 vim include.txt (每行一个)
admin/
api/
index/
mobile/
vim exclude.txt
.[a-z]*
api/config.php
rsync -avz /www/TP5/application/ --include-from '/www/include.txt' --exclude-from '/www/exclude.txt' --exclude '/*' root@192.168.1.146:/www/www/
大功告成,有问题留言,一块讨论