rsync SERVER失败

时间:2013-04-28 20:31:20

标签: linux centos rsync

我已经设置了rsync服务器 - > /etc/rsyncd.conf

max connection = 5  
log file = /var/log/rsync.log  
[web]  
path = /srv/www/html  
read only = false  
list = yes  
hosts allow = 127.0.0.1  
uid = nobody  
gid = nobody  

[root@localhost www]# ls -l /srv/www/html/  
-rwxrwxrwx. 1 amit amit 8 Apr 28 10:37 index.html  

如果我这样做

$rsync 127.0.0.1::
$web  

它正确显示模块名称 但如果我这样做

$rsync 127.0.0.1::web  
@ERROR: chroot failed  
rsync error: error starting client-server protocol (code 5) at main.c(1503) [receiver=3.0.6]

我不知道为什么?我首先在localhost上测试rsync的工作,因为远程rsync失败

3 个答案:

答案 0 :(得分:16)

解决方案是 在服务器上的/etc/rsyncd.conf中添加

use chroot = false

我不知道为什么默认为真。在浏览rsync文档时,通过运气获得解决方案。希望这为别人节省时间 干杯

答案 1 :(得分:1)

我遇到了同样的问题,并注意到我在服务器端在rsyncd.conf中给出的路径是错误的。 实际路径为 路径= / usr / share / tomcat / webapps /文件夹 但是我在给 路径= / usr / share / tomcat6 / webapps /文件夹 在我更正该路径后,请确保该路径正确无误。

答案 2 :(得分:0)

这可能是SELinux的问题,它需要知道rsync守护程序可以使用该文件夹。让我们考虑一个示例,以同步以下文件夹:set()

需要运行以下命令来设置正确的SELinux上下文:

/home/myuser/ftp

奇怪的是,我注意到必须标记父文件夹,因此为什么要在semanage fcontext -a -t rsync_data_t '/home/myuser(/.*)?' restorecon -Rv '/home/myuser' setsebool -P rsync_client on 而不是/home/myuser上进行标记。只需在rsync守护程序配置中完成对/home/myuser/ftp子文件夹的限制。

您可以通过运行以下命令检查SELinux标签:

ftp

关于为什么将chroot和SELinux结合的有趣文章是个好主意:http://blog.siphos.be/2012/04/why-both-chroot-and-selinux/