keepalived+rsync 以及rsync报的错

实现功能

两台服务器,监听tomcat服务,如果主服务器上的tomcat挂了,则让虚拟IP飘到备用服务器,同时两台服务器上的文件要实时同步备份。

主服务器:serverA

备用服务器:serverB

首先,对主服务器serverA:

创建四个脚本:

1)tomcat_check.sh:监听tomcat服务,如果挂了重启tomcat并sleep 2s,再次检查tomcat启动了没,如果还没启动则killall keepalived。这样虚拟IP就飘到serverB上了。

tomcat_check.sh是在keepalived.conf中配置定时重复执行的。

2)start_bkp.sh:全量备份

执行 rsync -vzrtopglLu ...将serverA的制定目录全量备份到serverB

这个脚本不用重复执行,用 nohup ./start_bkp.sh & 执行一次就行了。

3)start_rsync.sh:增量备份

先执行inotifywait -mrq --format ...判断哪些文件被修改了或者新增了,对这些修改了的文件通过 rsync -avz 进行增量备份

这个脚本的执行是在check_keepalived.sh里。

4)check_keepalived.sh:当VIP没绑在serverA上时,执行增量备份。

具体来说,判断VIP是否飘在主服务器serverA上,如果是,就不用备份了,如果否:判断start_rsync.sh是否正在执行,如果start_rsync.sh 没在执行则启动。

这个脚本在crontab 中执行。

第二步,对备用服务器ServerB

把start_rsync.sh, check_keepalived.sh拷过去。其中start_rsync.sh的IP地址要改成serverB的IP地址。

然后crontab -e 

*/1 * * * * sh check_keepalived.sh

出现的问题:

keepalived.conf中vrrp_script不执行:

未解决

tail -f /var/log/messages 看日志

暂时的解决方法:

改用crontab 

新增定时任务: crontab -e 

然后执行
/sbin/service crond start

注意:如果想看crontab 执行日志,可以在crontab -e 

                  

rsync 问题

1. Connection refused

rsync: failed to connect to 192.168.0.34 (192.168.0.34): Connection refused (111)

首先确定主备服务器的rsync都开了。大概率是没开导致的,有时候rsync会自己莫名其妙就关了,以为启动着的结果ps -aux | grep rsync一看发现没起。。

rsync重新启动步骤:

先杀死上一次rsync进程及其pid文件

cat /root/rsyncscript/rsync/run/rsyncd.pid 查看pid

kill -9 pid

rm -rf /root/rsyncscript/rsync/run/rsyncd.pid 删除pid文件

开启rsync服务:sudo rsync --daemon --config=/etc/rsyncd.conf

然后在防火墙开启rsync需要的873端口:

iptables -A INPUT -ptcp --dport 873 -j ACCEPT

注意:

1) centos下好像不用重启iptables或者保存,直接就生效了;

注:防火墙关闭命令:

service iptables stop

或者

systemctl stop firewalld.service

2 chdir failed

存备份文件的那个服务器里找不到对应的路径,新建一个目录即可。

3. The --password-file option may only be used when accessing an rsync daemon

rsync防火墙改不了,遂走ssh方法

在rsyncd.conf里加passwd文件,在执行rsync时 增加参数 --password-file=FILE。但是报错:

The --password-file option may only be used when accessing an rsync daemon

认真看:

rsync 原生的无密码同步方法记录

这个错没解决,不知道咋回事

4. connection reset by peer

出现这个错至少说明主备服务器上rsync服务以及873端口都是正常启动着的。。。

解决方法:在配置文件里加

read only = false

我原来的配置文件里没写read only这个参数,加上了就好了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值