LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3264|回复: 11

请教rsync中的exclude和include该如何搭配使用?

[复制链接]
发表于 2008-3-8 13:31:43 | 显示全部楼层 |阅读模式
请教rsync教程中的一段:

exclude
用来指定多个由空格隔开的多个模式列表,并将其添加到exclude列表中。这等同于在客户端命令中使用--exclude来指定模式,不过配置文件中指定的exclude模式不会传递给客户端,而仅仅应用于服务器。一个模块只能指定一个exclude选项,但是可以在模式前面使用"-"和"+"来指定是exclude还是include。

最后的两句话我不理解,懂的朋友能帮我解析一下吗?exclude和include该如何搭配使用啊?

另外,如果我只想同步十几个不在相同目录下的文件(数据库文件,很庞大),该怎么做呢?我用了"include="参数都不成功。(这个很急,两天内就必须实现,各位帮帮我啊!!!)
发表于 2008-3-8 16:37:58 | 显示全部楼层
exclude是把这些文件或者目录排除,
include是针对exlcude的,它特别说明不要排除这些文件,而不是说要包含这些文件
在服务器端的写法是:
exclude = /abc/** +/abc/xxx

你要把数据库文件所在服务器设定为服务器端还是客户端?
如果是客户端:

rsync -aR /mysql1 /mysql2 /mysq3  192.168.0.2::mysql_dir/
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-8 17:23:33 | 显示全部楼层
Post by sofire;1824269
exclude是把这些文件或者目录排除,
include是针对exlcude的,它特别说明不要排除这些文件,而不是说要包含这些文件
在服务器端的写法是:
exclude = /abc/** +/abc/xxx

你要把数据库文件所在服务器设定为服务器端还是客户端?
如果是客户端:

rsync -aR /mysql1 /mysql2 /mysq3  192.168.0.2::mysql_dir/
试了,有了些变化,但还是不行啊!按如下模块来同步,整个OS都被排除了;而我只想要同步OS下的bs2000,而排除OS下别的都不要,该如何设置啊?
[root@www test]# vi /etc/rsyncd.conf
[httpd]
path =/home/mylib/web/httpd-2.2.4/
read only = yes
list = yes
exclude= os +/home/mylib/web/httpd-2.2.4/os/bs2000
~

"/etc/rsyncd.conf" 18L, 476C                                  18,1          All
回复 支持 反对

使用道具 举报

发表于 2008-3-9 16:01:02 | 显示全部楼层
[httpd]
    path = /home/install/src/httpd-2.0.59/
    list = yes
    read only = yes
    exclude = /os/**
    include = /os/bs2000/***

rsync -r localhost::httpd/os

规则写好后,多测试测试吧。免得出错。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-9 22:25:47 | 显示全部楼层
还是不成功!按你的格式来做,能够复制目录os,但里头全是空的,并没有复制目录bs2000。怎么办?头都大了!是不是软件有问题啊!这两个参数难道要用的是绝对路径?
回复 支持 反对

使用道具 举报

发表于 2008-3-10 00:29:17 | 显示全部楼层
Rsync命令咋写的?我测试没问题。
软件不会有问题,多看看文档上是怎么说的吧。
还要注意,别把配置写错了。错了它也不会提示的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-10 23:12:06 | 显示全部楼层
我的配置如下:
[httpd]
path =/home/mylib/web/httpd-2.2.4
read only = yes
list = yes
exclude = /os/**
include = /os/bs2000/***

完整的路径结构:/home/mylib/web/httpd-2.2.4/os/bs2000
执行的结果是:目录os能复制,但里头全空,根本没有复制bs2000。
最终还是失败,只好改作链接的方式来实现备份了。差点被技术总监给骂了!
我会想办法搞清楚这是怎么回事的!
多谢楼上的朋友啦!
回复 支持 反对

使用道具 举报

发表于 2008-3-10 23:26:50 | 显示全部楼层
在/etc/rsyncd.conf中加入:
log file=/tmp/rsyncd.log

看看有没有错误发生。
另外,检查一下有没有这两个问题:
1. 权限问题
2. 路径是不是写对了

对了,有没有开SeLinux?

如果没有用exclude和include,能复制吗?
如果在服务器端有问题,也可在客户端指定exclude选项。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-3-15 09:32:19 | 显示全部楼层
多谢楼上的,我这周事多,也就没顾得上来看帖了!
现在用了个较笨的方式,就是用链接的方式把需要备份的给链接出来,进行备份了!没有启用exclude和include。
等下周抽空再认真试试。你有别的联系方式吗?到时出现新情况好跟你请教,或交流一下备份方案!我的Email:titus0719@gmail.com
回复 支持 反对

使用道具 举报

发表于 2008-3-15 13:03:24 | 显示全部楼层
我的联系方式是公开的。看我的资料或者签名。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表