Press "Enter" to skip to content

CentOS6配置rsync服务

rsync是linux下的文件同步服务,本文演示了在CentOS 6系统上配置rsync的过程。

1,服务端配置

网上有很多教程在配置rsync服务端的时候,都先配置了xinetd服务,事实上这是不必要的,rsync也能脱离xinetd以独立进程的方式运行,所以本文未配置xinetd。

$ yum install rsync -y

$ mkdir /etc/rsyncd
$ touch /etc/rsyncd/rsyncd.conf    #主配置文件
$ touch /etc/rsyncd/rsyncd.secrets #客户端连接时使用的用户和密码
$ touch /etc/rsyncd/rsyncd.motd    #服务端提示信息文件
$ chmod 600 /etc/rsyncd/rsyncd.secrets
$ chown root:root /etc/rsyncd/rsyncd.secrets

建立配置文件

$ vi /etc/rsyncd/rsyncd.conf
uid = root
gid = root  
use chroot = no        
read only = yes          #只读,不让客户端上传文件到服务器
address = 192.168.1.114  #服务端的IP,写错将无法启动进程
port = 873

hosts allow = 192.168.1.0/24 172.16.0.0/255.255.0.0
hosts deny = *
max connections = 5

pid file = /var/run/rsyncd.pid
motd file = /etc/rsyncd/rsyncd.motd
secrets file = /etc/rsyncd/rsyncd.secrets

log file = /var/log/rsync.log
transfer logging = yes
log format = %t %a %m %f %b

syslog facility = local3
timeout = 300

[mytmp]
path = /tmp/zhang3/
list = yes
ignore errors
auth users = zhang3  #只有rsyncd.secrets文件中的zhang3用户可以同步此目录

[townhome]
path = /home/town
list = no           #服务器上同步数据的目录在服务器模块上列出来
ignore errors       #忽略IO错误
auth users = town   #只有rsyncd.secrets文件中的town用户可以同步此目录
comment = hitown    #客户端连接时的提示

设置客户端连接时使用的用户名和密码

$ vi /etc/rsyncd/rsyncd.secrets
town:hello123
zhang3:123456

设置客户端连接时看到的提示信息

$ vi /etc/rsyncd/rsyncd.motd
+++++++++++++++++++++++++++++++++++++

Welcome to zhukun.net rsync server!

+++++++++++++++++++++++++++++++++++++

启动服务端,设置开机自启动

$ /usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf
$ echo '/usr/bin/rsync --daemon --config=/etc/rsyncd/rsyncd.conf' >> /etc/rc.local

2,客户端配置

$ yum install rsync -y
$ echo 123456 > /etc/rsync.password  #将zhang3的密码写入本地
$ chmod 600 /etc/rsync.password    #重要,rsync会检查权限,如果不是600会报出错误

注意,rsync.password文件不建议放在/tmp下,博主有一次放在/tmp下过一段时间后发现文件“消失”了,因此建议放在/etc下。

列出文件

$ rsync --list-only --password-file=/etc/rsync.password [email protected]::mytmp

同步文件到本地的目录

$ rsync -auvzP --delete --password-file=/etc/rsync.password [email protected]::mytmp /tmp/zhang3

参数说明:

-a 相当于-rlptgoD,-r是递归 -l是链接文件,意思是拷贝链接文件;-p表示保持文件原有权限;-t保持文件原有时间;-g保持文件原有用户组;-o 保持文件原有属主;-D 相当于块设备文件;
-u, --update 仅仅进行更新,也就是跳过所有已经存在于DST,并且文件时间晚于要备份的文件。(不覆盖更新的文件) 
-z 传输时压缩;
-P 传输进度;
-v 传输时的进度等信息,和-P有点关系,自己试试。
--delete 表示客户端的数据要与服务器端完全一致,如果客户端目录里有服务器上不存在的文件,则删除。

=========================================
2015.05.15补充:
公司两台DELL服务器,之间采用万兆交换机互联,使用SCP命令拷贝文件时,速度能达到200M/s,但使用rsync同步时,速度始终在10-20M/s的速度,百思不得奇解。
原因:执行rsync同步时,慎用-z参数!一旦启用了-z参数,则数据在传输前会先经过压缩,如果文件比较大的话,压缩会很慢!进而出现,明明网速很快,却同步缓慢的情况。

Leave a Reply

Your email address will not be published. Required fields are marked *