使用inotify+rsync实现两台nginx主机配置文件同步

环境信息,两台nginx主机:

192.168.108.142(备)

192.168.108.140(主)

inotify介绍:

黄东升: inotify学习笔记-腾讯云开发者社区-腾讯云

1、安装inotify-tools,用于监控nginx配置文件变化(主机上安装):

上传inotify-tools-3.13.tar.gz软件包到主服务器root目录下,解压并安装:

tar xf inotify-tools-3.13.tar.gz

cd inotify-tools-3.13/

./configure --prefix=/usr/local/inotify

make && make install

设置环境变量并添加软连接

echo "PATH=/usr/local/inotify/bin:$PATH" >>/etc/profile.d/inotify.sh

source /etc/profile.d/inotify.sh

echo "/usr/local/inotify/lib" >/etc/ld.so.conf.d/inotify.conf

ln -s /usr/local/inotify/include /usr/include/inotify

2、安装rsync(主备两台机上都需要安装)

rpm -qa | grep rsync #检查rsync是否已安装,大部分系统都已安装

yum安装:yum -y install rsync

3、配置rsync服务(备机上需要起服务)

vim /etc/rsyncd.conf

uid = root
gid = root
use chroot = yes
address = 192.168.108.142
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.108.0/23
[www]
path = /usr/local/nginx/conf/conf.d
read only = no
dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2
auth users = root
secrets file = /etc/rsync.passwd

vim /etc/rsync.passwd

root:$PASSWORD    #$PASSWORD填写备机root密码
chmod  600 /etc/rsync.passwd
systemctl start rsyncd.service
systemctl enable rsyncd.service
netstat -anptu | grep  rsync

4、在主机上编写inotify脚本,监控/usr/local/nginx/conf/conf.d目录下文件的变化,实现主备实时同步

vim backup.sh

#!/bin/bash
echo $$ > /root/backup.pid
inotifywait -rmq --format "%w%f" -e create,delete,moved_to,close_write,modify /usr/local/nginx/conf/conf.d | while read line
do
rsync -az --delete /usr/local/nginx/conf/conf.d/ root@192.168.108.142::www --password-file=/etc/server.passwd
done

vim /etc/server.passwd

$PASSWORD          #$PASSWORD填写备机root密码
chmod 600 /etc/server.passwd
chmod 755 /root/backup.sh

nohup ./backup.sh &

(扩展:在备机上安装inotify,通过监控/usr/local/nginx/conf/conf.d目录的变化,实现备机nginx自动reload)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

哈工大-凌梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值