> CentOS > CentOS服务器 > 文件同步 >

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 > /tmp/rsync.password  #将zhang3的密码写入本地
$ chmod 600 /tmp/rsync.password    #重要,rsync会检查权限,如果不是600会报出错误

列出文件

$ rsync --list-only --password-file=/tmp/rsync.password zhang3@192.168.1.114::mytmp

同步文件到本地的目录

$ rsync -auvzP --delete --password-file=/tmp/rsync.password zhang3@192.168.1.114::mytmp /tmp/zhang3

参数说明:

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