rsync只同步指定目录的方法(已测)
时间:2015-02-19 14:35 来源:linux.it.net.cn 作者:IT
今天在配置文件同步的时候,只需要同步指定目录,因为一些目录是不需要同步的而且数量比较大,这里简单分享下–include参数的使用
rsync同步指定目录
rsync使用–include参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。
例如:
linux上文件目录
ls /usr/local/apache/htdocs/site
aa
bb
cc
dd
ee
..
zz
只想同步aa,bb,ee这三个目录,其他的不同步。
实现代码:
/usr/local/rsync/bin/rsync -azv --include "aa/" --include "bb/" --include "ee" --exclude "/*" --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site
说明:
–include “aa/” –include “bb/” –include “ee” 包含了你要同步的目录 –exclude包含了不同步的目录所有用“/*”指定。
–exclude “/*” 除了–include同步的目录外,排除其他目录
rsync://127.0.0.1/site 为你rsync服务端要同步的目录
/work/backup/htdocs_bak/site 为你客户端的目录
rsync同步指定正则文件(含子目录)
前阵子做日志备份,把各个服务器上的日志同步到日志服务器上做备份,刚开始比较暴力,把所有压缩好的*gz文件全部传送到日志备份服务器上。后来,发现这种方式非常不好,一旦备份的目录发生改变,服务器上又会把它所有的*gz文件全部再传一遍,即浪费时间又给服务i/o产生不必要的压力,后来想只同步某天的*gz文件。
需求描述:
有一个类似于这样的目录结构,子目录的个数是不确定的
[root@IND_ tlbb]# tree
.
|-- ReadMe.txt
| |-- Audit
| `-- Money_2013-09-10.tgz
|-- Audit_2013-09-10.tgz
`-- Install
我想同步*.py结尾的东东
同步完成后
[root@IND_ tlbb]# tree
.
|-- Audit
| `-- Money_2013-09-10.tgz
`-- Audit_2013-09-10.tgz
方式1:(失败)
rsync -auvz –include=”*${YDate}*gz ” ./ 192.168.137.22::tlbb
结果:会把所有的文件都同步过去了,连Install都同步过去了
方式2:
rsync -aruvz –include=”*${YDate}*gz” –include=”*/” –exclude=”*” ./* 192.168.137.22::tlbb
结果:能把今天所有的gz文件都正常传过去喽,先允许所有的匹配的gz文件,再允许所有子目录,最后拒绝所有其他的。
(责任编辑:IT)
今天在配置文件同步的时候,只需要同步指定目录,因为一些目录是不需要同步的而且数量比较大,这里简单分享下–include参数的使用
rsync同步指定目录
ls /usr/local/apache/htdocs/site aa bb cc dd ee .. zz
只想同步aa,bb,ee这三个目录,其他的不同步。 实现代码:
/usr/local/rsync/bin/rsync -azv --include "aa/" --include "bb/" --include "ee" --exclude "/*" --progress rsync://127.0.0.1/site /work/backup/htdocs_bak/site
说明:
–include “aa/” –include “bb/” –include “ee” 包含了你要同步的目录 –exclude包含了不同步的目录所有用“/*”指定。 rsync同步指定正则文件(含子目录) 前阵子做日志备份,把各个服务器上的日志同步到日志服务器上做备份,刚开始比较暴力,把所有压缩好的*gz文件全部传送到日志备份服务器上。后来,发现这种方式非常不好,一旦备份的目录发生改变,服务器上又会把它所有的*gz文件全部再传一遍,即浪费时间又给服务i/o产生不必要的压力,后来想只同步某天的*gz文件。
需求描述:
[root@IND_ tlbb]# tree . |-- ReadMe.txt | |-- Audit | `-- Money_2013-09-10.tgz |-- Audit_2013-09-10.tgz `-- Install
我想同步*.py结尾的东东 同步完成后
[root@IND_ tlbb]# tree . |-- Audit | `-- Money_2013-09-10.tgz `-- Audit_2013-09-10.tgz
方式1:(失败) 结果:会把所有的文件都同步过去了,连Install都同步过去了
方式2: 结果:能把今天所有的gz文件都正常传过去喽,先允许所有的匹配的gz文件,再允许所有子目录,最后拒绝所有其他的。 (责任编辑:IT) |