分类: LINUX
2013-11-06 12:14:11
原文地址:linux配置rsync服务端 作者:hnynes
Mars
MSN/Email: hnynes@gmail.com
平时用得多的像代码管理,数据备份,多在同一台机器上,万一硬盘坏了,几乎无力回天,即使有很多都有备份,多数都是本地备份,因此都需要异地备份. 比较喜欢rsync,免费
以下也是查询了一些文章,然后真实操作后所写.
我的系统环境是CentOS 6.2
首先确认本机的rsync是否已经安装
rpm -qa | grep rsync
我的执行结果是 rsync-3.0.6-9.el6.x86_64
若没有安装,可以挂载光盘,再找到对应的RPM包,使用rpm -i安装. 也可以使用yum安装.
安装完后,就可以开始配置了.
创建rsync配置文件
vi /etc/rsyncd.conf
# Global configuration
secrets file = /etc/rsyncd.secrets #存储密码的文件
motd file = /etc/rsyncd.motd #显示欢迎信息
# no means user can upload files
read only = no
write only = no
# yes means user can list the directory
list = yes
uid = root
gid = root
max connections = 5
#hosts allow = 172.18.2.0/24
hosts allow = *
hosts deny = *
use chroot = no
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
#Component configuration
#注意此中括号中的名字,在传输数据的时候会用到.
[rsyncd]
comment = backup directory
path = /opt/backup/x041201/svncode
auth users = rsync
secrets file = /etc/rsyncd.secrets
除了配置文件,还要创建配置文件中引用到的两个文件
secrets file = /etc/rsyncd.secrets #存储密码的文件
motd file = /etc/rsyncd.motd #显示欢迎信息
其中,显示欢迎信息的这个可以不启用,若不想使用,记得将此行注释掉.
设备随机启动服务.
chkconfig --list
在执行结果的最后有一段
******
xinetd based services:
chargen-dgram: off
chargen-stream: off
cvs: off
daytime-dgram: off
daytime-stream: off
discard-dgram: off
discard-stream: off
echo-dgram: off
echo-stream: off
rsync: on
swat: off
tcpmux-server: off
time-dgram: off
time-stream: off
******
其中的rsync服务已经安装了,我的结果列表是我已经打开了. 这个就是控制rsync服务随机启动的,若你的列表中此项为off,可按下面的步骤修改即可.
vi /etc/xinetd.d/rsync
修改disable = yes 为disable = no
启动服务
service xinetd restart
至此,配置基本完成,可以使用客户端测试下:
我用的是windows下的cwrsync
先切换到cwrsync的bin目录下,再执行下面的命令
下载文件/目录:
rsync -vzrtopg --progress --delete --password-file=/cygdrive/e/code/rsync/conf/rsyncpass rsync@172.18.2.36::rsyncd /cygdrive/e/code/rsync/rsynctest
上传文件/目录:
rsync -vzrtopg --progress --delete /cygdrive/d/Code/SVNCodeBak rsync@172.18.2.36::rsyncd --password-file=/cygdrive/c/windows/rsyncpass
若没有遇到什么问题,基本上就配置结束了.
下载基本上不会有什么问题,但是上传这个可能还是会遇到一些问题的,如果提示是Permission denied.可以看下我的解决方法:
出现Permissions denied的提示时,一般我们都会先给linux上的对应目录加上写权限. 当作为这种操作后,再测试,发现上传还是一样的提示.这时就不知道如何整了.
一般linux上的se-linux都是开着的,这也是为了系统安全而做的,大家也应该去熟悉它,上面的这个问题就很有可能是se-linux造成的.
首先看下对于rsync有哪些与se-linux相关的设置
getsebool -a | grep rsync
执行结果:
allow_rsync_anon_write --> on
rsync_client --> off
rsync_export_all_ro --> off
rsync_use_cifs --> off
rsync_use_nfs --> off
我的结果列表中有一项write是开着的,这是我修改后的结果,若你的是关闭的,可以修改这个设置后再测试上传是否能成功. 执行此命令,可能会需要一点时间,我的机器用了30秒左右才完成.
setsebool -P allow_rsync_anon_write on
当然你能搜索到很多与此篇类似的文章,里面有一些也会介绍到se-linux的问题,很多都是建立直接关闭掉,若是production机器,你真的敢关闭吗?
setenforce 0 #关闭se-linux,重启后失效.
永久关闭se-linux
vi /etc/selinux/config
将其中的 SELINUX=enforcing 修改为 SELINUX=disabled
以后重启,将不会再启用se-linux了