Linux教程之白嫖宝塔Rsync+inotify监控同步

文章详细介绍了如何使用rsync工具在Linux环境中进行宝塔面板的目录结构同步,包括安装步骤、配置细节、排除不必要的文件以及处理同步过程中的问题。通过设置监控和排除列表,实现了高效的数据同步,以保证多服务器间的一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概要

安装完宝塔对于宝塔内部结构不太了解的可以看下图:

Rsync同步原理

就目前宝塔给的同步工具,老天鹅,有点小贵,不过对于土豪来说没关系,这点钱不够租台服务器的钱,洒洒水辣;可以理解咱们这些苦逼太穷,所以rsync才能发扬光大。它的原理大家都能看出来,图文说一下:rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。

操作顺序开始安装

  1. 准备一主两备服务器  例:(192.168.0.1主)(192.168.0.2备)(192.168.0.3备)
  2. 全部运行下面的命令:

首先安装宝塔:yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

开启873端口

关闭Linux防火墙:systemctl stop firewalld

关闭:setenforce 0


rsync安装:yum install rsync

监控安装:yum -y install inotify-tools && rpm -qa inotify-tools

主服务器配置:

vi /etc/rsyncd.conf

uid = root
gid = root
use chroot = yes
address = 192.168.0.1               #主服务器IP
port 873
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
hosts allow = 192.168.0.0/24        #网段
[wwwroot]
path = /www/back                    #共享目录随机
read only = yes
dont comperss = *.gz *.bz2 *.tgz *.zip *.rar *.z
auth users = rsync
secrets file = /etc/rsync.password  #数据互通密码

创建密码:vi /etc/rsync.password

root:123456

启动rsync:rsync --daemon

设置监控生效:vi /etc/sysctl.conf

fs.inotify.max_user_instances = 1024    #最大连接数
fs.inotify.max_user_watches = 81920000  #最大容量

测试数值是否生效: 

cat /proc/sys/fs/inotify/max_user_watches

cat /proc/sys/fs/inotify/max_user_instances

公钥速传:

ssh-keygen

回车回车

指定端口:ssh-copy-id -i ~/.ssh/id_rsa.pub -p2222 192.168.0.2

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.2

ssh-copy-id -i ~/.ssh/id_rsa.pub 192.168.0.3

主服务器结束

备份服务器开始:

 vi /etc/rsync.password

123456

 备份服务器结束

开始同步:

#! /bin/bash                                           
while inotifywait -r /www/server/panel/                # #同步的站点
do
rsync -av --delete --progress  -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.2:/www/wwwroot/
rsync -av --delete --progress  -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.3:/www/wwwroot/
done

相关的参数就自行百度吧,到这一步就同步站点文件 成功了,测试在主服务器增加站点,但登录备份服务器的宝塔上还是空空的……

宝塔配置文件的同步:

#! /bin/bash                                           
while inotifywait -r /www/server/panel/                # #同步的站点
do
rsync -av --delete --progress  -e 'ssh -p 22' /www/server/panel/ root@192.168.0.2:/www/server/panel/
rsync -av --delete --progress  -e 'ssh -p 22' /www/server/panel/ root@192.168.0.3:/www/server/panel/
rsync -av --delete --progress  -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.2:/www/wwwroot/
rsync -av --delete --progress  -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.3:/www/wwwroot/
done

 貌似是可以同步了,不过……面板大多数功能依赖云端服务(证书申请,产品购买,软件列表等),该功能仅用于云端服务,不涉及敏感操作。

这就是拖家带口都同步过来了。这就需要排除一些不必要同步的文件

rsync -av --delete --progress --exclude-from= ‘no.txt’

如果现在是[root@localhost ~]#那就给no.txt换个位置,比如home、etc?

vi /home/no.txt

runtime/*
public/fastexport/*
public/.user.ini
config/*
data/edate.pl
data/session_last.pl
data/session/
data/sess_files/
data/control.conf
data/port.pl
data/admin_path.pl
class/
data/login_token.pl
data/userInfo.json
pyenv/bin/
pyenv/*
#BT-Task
#BT-Panel
/www/server/nginx/sbin/*
/www/server/nginx/*.pl
/plugin/
logs/
vhost/nginx/btwaf.conf
vhost/nginx/phpfpm_status.conf
install/nginx.sh

这是8.0.0版本的宝塔配置文件,可供参考

那么就加进去试试吧:

#! /bin/bash                                           
while inotifywait -r /www/server/panel/                # #同步的站点
do
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/server/panel/ root@192.168.0.2:/www/server/panel/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/server/panel/ root@192.168.0.3:/www/server/panel/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.2:/www/wwwroot/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/wwwroot/ root@192.168.0.3:/www/wwwroot/
done

细节处理

每次在主节点0.1发起站点增删改,那么监控就感知到文件变动,执行rsync进行同步,相关服务仅需重启Nginx即可。

一般有报错也就是服务未开启,重启一下rsync就能解决,或者重启服务器也是不错的选择。

小结

宝塔中自带的也是rsync,不过同步下来还是不如源代码果断,怎么停止rsync网上有,接下来就是看你的创造力,未来可期,小运维的默默分享。

参考:宝塔搭建Rsync_宝塔rsync_小白白友的博客-优快云博客

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Doocker

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

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

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

打赏作者

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

抵扣说明:

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

余额充值