对于rsync的使用, 在备份之中常常用到, 不敢说精通, 但是也已经熟练到得心应手了, 但是细节问题, 没遇到还真的不知道. 最近遇到一个备份的问题, 需要同步大量文件中的小部分文件, man rsync的中有两个参数可以完成, 但是这两个参数的使用却又有其中的玄机, 分别是--exclude=PATTERN, --include=PATTERN. 例如我要将/home/test1中包含mysql开头的文件同步到/data/test1中, 其他的文件忽略掉, 这个命令怎么写呢? 如果全部同步这样写是没有问题的, 它会在/data下面创建test1,并将文件同步过去. rsync -av /home/test1 /data 想当然, 就会将上面改成下面这样, 显然是行不通的, 没有任何的文件同步过去... rsync -av --exclude=* --include=mysql* /home/test1 /data/ 呵呵, 将--exclude=*放到后面看看, 全部文件都同步过去了, 但是模式mysql*却没有起作用. rsync -av --include=mysql* --exclude=* /home/test1 /data/ 正确的方法是... rsync -av --include=mysql* --exclude=* /home/test1/ /data/test1 看到差别了吗? 我想/home/test1/表示的是/home/test1下面的所有文件, 必须要一个/, 模式--include=mysql*才会起作用. 疯了吧... 刚开始少了一个/的时候我还怀疑--include=PATTERN这个参数是唬人的... (责任编辑:IT) |