| 导读 | 生产环境中数据同步是最常用的工具,特别是使用了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
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/121426.html