Linux rsync同步集群web端

作者: seamus 分类: 常用 发布时间: 2018-05-05 00:40

软件环境:CentOS 6.5

操作系统:CentOS 6.5 源服务器:192.168.0.250

目标服务器:192.168.0.248

目的:保证集群web(源服务器)挂掉后,另外一台机器接着提供web(目标服务器)服务

第一部分:在目标服务器192.168.0.248上操作

在目标服务器安装Rsync服务端

1、关闭SELINUX

#vi /etc/selinux/config

SELINUX=disabled

#setenforce 0 #立即生效

2、开启防火墙TCP 873端口(或者关闭防火墙)

#vi /etc/sysconfig/iptables 编辑防火墙配置文件

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT

#/etc/init.d/iptables restart? #最后重启防火墙使配置生效

3、安装RSYNC服务端软件

#yum install rsync xinetd

4、编辑配置文件,设置开机启动

#vi /etc/xinetd.d/rsync

rsync disable = no 修改为no 保存退出

#/etc/init.d/xinetd start 启动服务

5、创建RSYNCD.CONF配置文件

#vi /etc/rsyncd.conf #创建配置文件?添加以下代码

log file = /var/log/rsyncd.log #日志文件位置启动rsync后自动产生这个文件无需提前创建

pid file = /var/run/rsyncd.pid? #pid文件的存放位置

lock file = /var/run/rsync.lock? #支持max connections参数的锁文件

secrets file = /etc/rsync.pass? #用户认证配置文件里面保存用户名称和密码

motd file = /etc/rsyncd.Motd? #rsync启动时欢迎信息页面文件位置

uid = root #设置rsync运行权限为root

gid = root #设置rsync运行权限为root

port=873? #默认端口

use chroot = no #默认为true修改为no增加对目录文件软连接的备份

read only = no? #设置rsync服务端文件为读写权限

list = no #不显示rsync服务端资源列表

max connections = 200 #最大连接数

timeout = 600? #设置超时时间

auth users = admin #执行数据同步的用户名可以设置多个用英文状态下逗号隔开

hosts allow = 192.168.0.250? #允许进行数据同步的客户端IP地址可以设置多个用英文状态下逗号隔开

 

[vcfs] #自定义名称

path = ?/usr/local/bin/vcfs/ #rsync服务端数据目录路径

comment = backvcfs #模块名称

 

6、创建用户认证文件

#vi /etc/rsync.pass 配置文件添加以下内容

admin:123456 #格式用户名:密码可以设置多个每行一个用户名:密码

7、设置文件权限

#chmod 600 /etc/rsyncd.conf? #设置文件所有者读取、写入权限

#chmod 600 /etc/rsync.pass? #设置文件所有者读取、写入权限

8、启动RSYNC

#/etc/init.d/xinetd start? #启动

#service xinetd stop?? #停止

#service xinetd restart? #重新启动

二.第二部分在源服务器192.168.0.250上操作

安装Rsync客户端

1、关闭SELINUX

#vi /etc/selinux/config? #编辑防火墙配置文件,重启生效

SELINUX=disabled

#setenforce 0?? #立即生效

2、开启防火墙TCP 873端口

#vi /etc/sysconfig/iptables? #编辑防火墙配置文件

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 873 -j ACCEPT

#/etc/init.d/iptables restart #最后重启防火墙使配置生效

3、安装配置RSYNC客户端端软件

#whereis rsync? ?#查看系统是否已安装rsync,出现下面的提示说明已经安装

rsync: /usr/bin/rsync /usr/share/man/man1/rsync.1.gz

#yum install? xinetd? #只安装xinetd即可CentOS中是以xinetd来管理rsync服务的

#yum install rsync xinetd #如果默认没有rsync运行此命令进行安装rsync和xinetd

#vi /etc/xinetd.d/rsync #编辑配置文件设置开机启动

rsync disable = no #修改为no

#/etc/init.d/xinetd start #启动CentOS中是以xinetd来管理rsync服务的

4、创建认证密码文件

#vi /etc/passwd.txt? #编辑文件?添加以下内容

123456 #密码

#chmod 600 /etc/passwd.txt? #设置文件权限只设置文件所有者具有读取、写入权限即可

5、测试源服务器192.168.0.250到目标服务器192.168.0.248之间的数据同步

(以推送的方式,从源头推送到同步的机器)

#rsync -avH –port=873 –progress –delete? /usr/local/bin/vcfs/ admin@192.168.0.248::vcfs –password-file=/etc/passwd.txt

 

三.测试

  1. 在源250机器上web端增加(删除)osd,mon,mds。 运行同步命令。然后登入248上web端查看是否成功。
  2. 添加用户测试。
  3. 在源上增加各种网络服务,例如cifs nfs iscsi。

 

四.添加crontab任务实时同步更新

在源服务器上操作192.168.0.250

增加rsync_vcfs.sh 添加如下内容:

[root@node3 ~]# cat rsync_vcfs.sh

#!/bin/bash

/usr/bin/rsync -avH –port=873 –progress –delete? /usr/local/bin/vcfs/ admin@192.168.0.244::vcfs –password-file=/etc/passwd.txt

保存退出后。

增加crontab任务如下:

[root@node3 ~]# crontab –e

* * * * * /bin/bash /root/rsync_vcfs.sh 1>/dev/null

保存后。重启crond服务

service? crond? restart

五.最后测试

1.在源250机器上web端增加(删除)osd,mon,mds。 运行同步命令。然后登入248上刷新web端查看是否成功。实现实时刷新。

2.添加用户测试。

3.在源上增加各种网络服务,例如cifs? nfs? iscsi。然后再目标服务器248上面查看。

六.总结

针对整个Linux文件系统,rsync都能同步的,只要指定同步的文件路径,需要在配置文件中增加相应的模块,指定同步目录。修改同步脚本以及crontab任务。本例中,同步集群web端目录/usr/local/bin/vcfs

发表回复