# 1、关闭SELINUX (两端都需要配置) sed -i "/SELINUX=/s/enforcing/disabled/" /etc/selinux/config #永久关闭,需要重启服务器 setenforce 0 #临时关闭,立即生效 # 2、开启防火墙tcp 873端口(两端都需要配置) firewall-cmd --zone=public --add-port=783/tcp --permanent #rsyncd服务需要 firewall-cmd --zone=public --add-port=784/tcp --permanent #sersync服务需要 firewall-cmd --reload # 3、安装Rsync服务端软件xinetd添加开机自启(两端都需要配置) yum install rsync xinetd ======================================================================== # 环境说明:一台服务器装sersync 一台装rsync服务 # Sersync服务器(数据源,源机器):192.168.3.63 # Rsync服务器(备份端,目标机器):192.168.3.64 # 4、配置rsync,确定各个相关变量 SourceIP=192.168.3.63 SourceDir=/var/www/html BackupIP=192.168.3.64 BackupDir=/web-back/ BackupUser=rsyncuser BackupUserPassword=password123 RsyncName=[wwwroot] #Rsync模块名称 RsyncdPort=873 SersyncPort=874 SersyncPath=/usr/local/sersync ========================================================================= #备份源服务器目录备份目录创建(备份接收端配置) cd /web-back/ || mkdir -p /web-back #编辑/etc/rsyncd.conf文件 (备份接收端配置) # 全局参数 #运行进程的用户 uid = root #运行进程的组 gid = root #监听IP address = 192.168.3.64 #监听端口 port =873 #允许同步客户端的IP地址,可以是网段,或者用*表示所有 192.168.1.0/24或192.168.1.0/255.255.255.0 hosts allow = 192.168.3.0/24 #是否囚牢,锁定家目录,rsync被黑之后,黑客无法再rsync运行的家目录之外创建文件,选项设置为yes use chroot = yes #最大连接数 max connections = 5 #进程PID,自动生成 pid file =/var/run/rsyncd.pid #指max connectios参数的锁文件 lock file =/var/run/rsync.lock #日志文件位置 log file =/var/log/rsyncd.log #客户端登陆之后弹出的消息,需要创建 motd file =/etc/rsyncd.motd # 模块参数 # 共享模块名称(重要)可以自定义,但是使用配置需要和命令保持一致 [wwwroot] #备份路径 path = /web-back/ # 该模块的描述信息 comment = used for web-data root #设置源数据服务端文件读写权限 read only = false #是否允许查看模块信息 list = yes #备份的用户(匿名用户),和系统用户无关 auth users = rsyncuser #存放备份用户(匿名用户)的密码文件,格式是 用户名:密码 secrets file = /etc/rsync.passwd #创建提示文件和用户密码文件 (备份接收端配置) # 创建提示文件 echo "Welcome to Backup Server" > /etc/rsyncd.motd #创建用户密码文件 echo "rsyncuser:password123" > /etc/rsync.passwd #用户密码文件权限设置 chmod 600 /etc/rsync.passwd # #启动服务测试 (备份接收端配置) #启动xinetd服务 systemctl start xinetd #将xinetd服务加入开机项 systemctl enable xinetd #加载配置文件rsyncd.conf启动rsync服务 rsync --daemon --config=/etc/rsyncd.conf #测试服务是否正常启动 # netstat -antup | grep :873 # 5、数据备份测试 (数据源发送端配置) #设置免密登录文件 (密码为rsyncuser用户密码) echo "password123" > /etc/rsync.passwd #设置密码文件权限 chmod 600 /etc/rsync.passwd ================================================================================================================== #运行测试Rsync备份命令是否成功 rsync -avz --delete /var/www/html rsyncuser@192.168.0.64::wwwroot --password-file=/etc/rsync.passwd ================================================================================================================== # 6、下载sersync并解压(翻墙有时下载失败,所有要本地留存才行) google code下载页面地址:https://code.google.com/archive/p/sersync/downloads #上传到服务器 /opt 目录下 wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz tar xvf sersync2.5.4_64bit_binary_stable_final.tar.gz mv GNU-Linux-x86 /usr/local/sersync #修改sersync配置文件 #备份一份配置文件 cp confxml.xml confxml.xml.backup # 修改24--28行、 #修改本地同步目录:/var/www/html #rsync模块名称,192.168.3.64为备份接收端服务器;wwwroot为Rsync中所定义的共享模块名称 #修改31--34行,认证部分【rsync密码认证】 #start="true"是开启rsync调用,users="rsyncuser"是备份的用户(匿名用户),passwordfile="/etc/rsync.passwd"是备份用户的(匿名用户) #开启sersync守护进程同步数据 /opt/sersync/sersync2 -d -r -o /opt/sersync/confxml.xml #测试增删文件查看效果 # #查看文件变更记录 watch ls -l # 7、设置sersync监控开机自动执行 vi /etc/rc.d/rc.local #编辑,在最后添加一行 #软件解压安装到了/usr/local/sersync,所以下面才会出现该路径 /usr/local/sersync/sersync2 -d -r -o /usr/local/sersync/confxml.xml #设置开机自动运行脚本 #添加脚本监控sersync是否正常运行,未运行则自动运行sersync服务 vi /usr/local/sersync/check_sersync.sh #编辑,添加以下代码 #!/bin/sh sersync="/opt/sersync/sersync2" confxml="/opt/sersync/confxml.xml" status=$(ps aux |grep 'sersync2'|grep -v 'grep'|wc -l) if [ $status -eq 0 ];then $sersync -d -r -o $confxml & else exit 0; fi #添加脚本执行权限 chmod +x /usr/local/sersync/check_sersync.sh #添加任务计划.比如每5分钟检测一次是否正常 5 * * * * sh /usr/local/sersync/check_sersync.sh #扩充: 多实例情况 1、配置多个confxml.xml文件(比如:www、bbs、blog....等等) 2、根据不同的需求同步对应的实例文件 /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/www_confxml.xml /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/bbs_confxml.xml /usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/blog_confxml.xml