sersync同步配置
说明:
A机器(源):rsync+sersync+inotify
B机器(备):rsync
一、准备:
1.如果安装了宝塔,请开放873端口
2.修改系统设置
vi /etc/sysconfig/selinux
修改为
SELINUX=disabled
3.安装可能会使用到的命令
yum install vim -y
yum install tree -y
yum install rsync -y
yum install screen -y
二、安装sersync
1.下载sersync压缩包
cd /root
wget https://github.com/wsgzao/sersync/raw/master/sersync2.5.4_64bit_binary_stable_final.tar.gz
国内备用地址:
wget http://down.starli.top/Sersync/sersync2.5.4_64bit_binary_stable_final.tar.gz
2.解压
tar -zxvf sersync2.5.4_64bit_binary_stable_final.tar.gz
3.解压出来3个目录
GNU-Linux-x86/
GNU-Linux-x86/sersync2
GNU-Linux-x86/confxml.xml
4.把第一目录放到/serync下面
mv GNU-Linux-x86 /sersync
cd /sersync
mkdir bin conf logs
mv /root/GNU-Linux-x86/confxml.xml /sersync/conf/confxml.xml
mv /root/GNU-Linux-x86/sersync2 /sersync/bin/sersync
最终的结构目录如下(方便美观,如果不想折腾,就放一个目录下也行)
.
├── bin
│ └── sersync
├── conf
│ └── confxml.xml
├── logs
└── rsync.pass
5.修改conf下cnofxml.xml配置
如果怕麻烦,直接用附件的配置包,修改配置文件就行了
主要修改下面这段:
<sersync>
<localpath watch="/files"> #files修改为你想监控的目录
<remote ip="B机器的IP" name="B机器rsync配置节点比如,上面的z1"/>
</localpath>
<rsync>
<commonParams params="-artuz"/>
<auth start="false" users="root" passwordfile="/sersync/rsync.pass"/> #rsync同步密码位置
<userDefinedPort start="false" port="874"/><!-- port=874 -->
<timeout start="false" time="100"/><!-- timeout=100 -->
<ssh start="false"/>
</rsync>
<failLog path="/sersync/logs/rsync_fail_log.sh" timeToExecute="60"/>#失败日志脚本存放地点
6.创建同步验证密码
echo '123456' >> /sersync/rysnc.pass
7.写入环境变量
echo 'export PATH=$PATH:/sersync/bin' >>/etc/profile
8.查看是否写入
tail -l /etc/profile
9.使写入生效
source /etc/profile
10.查看是否能找到环境变量, 任意地方运行sersync命令
which sersync
#正常结果
/sersync/bin/sersync
#不正常的结果
/usr/bin/which: no sersync in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/sersync/bin)
#如果你确认上面路径什么的都没问题,尝试下
chmod 755 -R /sersync
chmod 600 -R /sersync/rsync.pass
11。测试同步命令
sersync -r -d -o /sersync/conf/confxml.xml
sersync -rdo /sersync/conf/confxml.xml
两行意思一样
命令参数说明
参数-d:启用守护进程模式
参数-r:在监控前,将监控目录与远程主机用rsync命令推送一遍
c参数-n: 指定开启守护线程的数量,默认为10个
参数-o:指定配置文件,默认使用confxml.xml文件
参数-m:单独启用其他模块,使用 -m refreshCDN 开启刷新CDN模块
参数-m:单独启用其他模块,使用 -m socket 开启socket模块
参数-m:单独启用其他模块,使用 -m http 开启http模块
不加-m参数,则默认执行同步程序
12.设置开机自动运行
echo 'sersync -r -d -o /sersync/conf/confxml.xml' >> /etc/rc.d/rc.local
三、rysnc 配置
rsync 配置(两个服务器都要配置)
A服务器配置目的:方便第一次完整同步拉取
B服务器配置目的:配置rysnc保持同步
1.修改rysnc服务端配置
vim /etc/rsyncd.conf
motd file = /etc/rsyncd.motd
transfer logging = yes
log file = /var/log/rsyncd.log
port = 873
uid = root
gid = root
use chroot = no
read only = no
#max connections = 10
host allow =*
list = yes
ignore errors
[files]
path = /files
ignore errors
list = true
secrets file = /etc/rsyncd.secrets
[z1]
path = /z1
ignore errors
list = true
secrets file = /etc/rsyncd.secrets
[z2]
path = /z2
ignore errors
list = true
secrets file = /etc/rsyncd.secrets
2.设置密码和权限
echo "admin:123456" > /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
3.设置开机启动
rsync --daemon
或者(二选一)
/usr/bin/rsync --daemon
4.检查是否运行
netstat -anpt |grep rysnc
先远程拉取一次
rsync -avP --progress --delete root@A服务器IP:/files /www/files/z1
四、防止sersync挂掉的自动脚本,记得加入计划任务
#!/bin/bash
sersync="/sersync/bin/sersync"
confxml="/sersync/conf/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 /sersync/autostart.sh
crontab -e */30 * * * * /usr/bin/sh /sersync/autostart.sh
五、其他命令
查看rysnc进程ID
ps -ef|grep rysnc
kill ID
发表评论