导读 生产环境中数据同步是最常用的工具,特别是使用了LVS负载均衡的环境,web服务器上的代码需要同步,或者本地开发人员修改、上传了新代码文件需要同步到对应的项目服务器上都可以使用rsync 工具。

测试环境情况如下:

centos 6.5_64 位系统安装rsync 服务器,IP地址:192.168.31.10

一台centos 7系统作为客户端进行测试,IP地址:192.168.31.11

rsync 默认情况下系统已经安装,但是我这里重新编译安装了一份,作为独立服务运行

下载rsync 源码包
wget  http://www.samba.org/ftp/rsync/rsync-3.1.2.tar.gz
tar  -zxvf rsync-3.1.2.tar.gz
cd  rsync-3.1.2
配置+编译安装
./configure --prefix=/usr/local/rsync  -disable-ipv6  #默认情况下会开启ipv6 ,我们可以直接在编译的过程取消ipv6
make && make install
创建对应的配置文件
cd  /usr/local/rsync
mkdir  etc 
mkdir  var
vim  ./etc/rsyncd.conf
     
log file = /usr/local/rsync/var/rsyncd.log
pid file = /usr/local/rsync/var/rsyncd.pid
lock file = /usr/local/rsync/var/rsyncd.lock
secrets file = /usr/local/rsync/etc/rsyncd.pass
motd file = /usr/local/rsync/etc//rsyncd.motd
read only = yes
hosts allow = 192.168.31.0/24
list = yes
uid = nobody
gid = nobody
use chroot = no
max connections = 60
     
[home_suse]
path = /home/wwwroot/suse
comment = www suse
auth users = qxyrsy

rsync.conf 即为配置文件了,其中的信息大概说明一下

log file = /usr/local/rsync/var/rsyncd.log     #定义日志文件
    
pid file = /usr/local/rsync/var/rsyncd.pid     #定义PID文件
    
lock file = /usr/local/rsync/var/rsyncd.lock  #支持max connections参数的锁文件
    
secrets file = /usr/local/rsync/etc/rsyncd.pass    #定义客户端连接时认证的账号密码信息文件
    
motd file = /usr/local/rsync/etc//rsyncd.motd    #rsync启动时欢迎信息页面文件位置(文件内容自定义)
    
read only = yes    #是否只读(若从客户端同步到服务器必须设置为NO)
    
hosts allow = 192.168.31.0/24  #允许的IP地址段
    
list = yes    
    
uid = root    #rsync以什么用户身份启动
    
gid = root
    
use chroot = no    
    
max connections = 60    #最大连接数
     
    
[home_suse]      #这里就是定义需要同步的目录了
    
path = /home/wwwroot/suse    #具体文件目录地址
    
comment = www suse    #描述信息,可以任意填写
    
auth users = qxyrsy     #认证用户名,稍后会将该用户名写入rsyncd.pass 中
创建rsyncd.pass 用户密码文件
vim rsyncd.pass 
    
#用户名:密码
    
qxyrsy:123456

这里需要注意,rsyncd.pass 文件的权限必须设置为600 ,否则启动会报错的

chmod 600 rsyncd.pass
启动rsync 服务端,放行对应的端口
rsync  --daemon --config=/usr/local/rsync/etc/rsyncd.conf &
    
netstat -tunlp 可以看到监听端口为873
    
iptables -I INPUT -p tcp --dport 873 -j ACCEPT
    
service iptables save
客户端配置

centos 只要不是最小化安装的系统,一般都已经预装好了rsync ,可以直接使用,不过可以先查看下

rpm -qa | grep rsync
    
客户端只需要新建一个密码文件即可,并且只填密码
    
cd /root
    
vim rsyncd.pass
     
123456

保存退出,并且同样需要设置权限为600

测试是否能够获取服务端的文件:

rsync -arP --password-file=/root/rsyncd.pass  qxyrsy@192.168.31.10::home_suse  /home/rsyntest

原文来自:https://www.cnops.xyz/archives/519

本文地址:https://www.linuxprobe.com/rsync-server-construction.html编辑:何云艳,审核员:逄增宝

Linux命令大全:https://www.linuxcool.com/