- A+
安装完宝塔对于宝塔内部结构不太了解的可以看下图:
Rsync同步原理
就目前宝塔给的同步工具,老天鹅,有点小贵,不过对于土豪来说没关系,这点钱不够租台服务器的钱,洒洒水辣;可以理解咱们这些苦逼太穷,所以rsync才能发扬光大。它的原理大家都能看出来,图文说一下:rsync是linux系统下的数据镜像备份工具。使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他SSH、rsync主机同步。
操作顺序开始安装
准备一主两备服务器 例:(192.168.0.1主)(192.168.0.2备)(192.168.0.3备)
全部运行下面的命令:
首先安装宝塔: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 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/ [email protected]:/www/wwwroot/
rsync -av --delete --progress -e 'ssh -p 22' /www/wwwroot/ [email protected]:/www/wwwroot/
done
相关的参数就自行百度吧,到这一步就同步站点文件 成功了,测试在主服务器增加站点,但登录备份服务器的宝塔上还是空空的……
宝塔配置文件的同步:
#! /bin/bash
while inotifywait -r /www/server/panel/ # #同步的站点
do
rsync -av --delete --progress -e 'ssh -p 22' /www/server/panel/ [email protected]:/www/server/panel/
rsync -av --delete --progress -e 'ssh -p 22' /www/server/panel/ [email protected]:/www/server/panel/
rsync -av --delete --progress -e 'ssh -p 22' /www/wwwroot/ [email protected]:/www/wwwroot/
rsync -av --delete --progress -e 'ssh -p 22' /www/wwwroot/ [email protected]:/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/ [email protected]:/www/server/panel/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/server/panel/ [email protected]:/www/server/panel/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/wwwroot/ [email protected]:/www/wwwroot/
rsync -av --delete --progress --exclude-from='/home/no.txt -e 'ssh -p 22' /www/wwwroot/ [email protected]:/www/wwwroot/
done
细节处理
每次在主节点0.1发起站点增删改,那么监控就感知到文件变动,执行rsync进行同步,相关服务仅需重启Nginx即可。
一般有报错也就是服务未开启,重启一下rsync就能解决,或者重启服务器也是不错的选择。
小结
宝塔中自带的也是rsync,不过同步下来还是不如源代码果断,怎么停止rsync网上有,接下来就是看你的创造力,未来可期,小运维的默默分享。
————————————————
您可以选择一种方式赞助本站
赏