0x01 前言
假设我有一台服务器A(服务端),一台服务器B(客户端),我要把A服务器的某个目录内的数据增量同步到服务器B。就可以使用Rsync来进行同步。
教程在两台服务器上都安装Rsync,A服务器发送,B服务器接收。Rsync检测到文件新增或者文件修改都自动执行同步,每次只同步更改的文件,网络资源占用小。
配合之前mysql双机热备,即可实现多VPS实时整站负载均衡;【宅技术】Mysql5.7 双机热备配置负载均衡-主/主复制 – 宅客基地 (zkjd.me)
0x02 配置A主服务器
1、首先需要安装Rsync,其中Ubuntu是直接安装好的,其余Linux系统自行百度安装;A/B两台机都需要安装;
Centos:yum -y install rsync
Ubuntu:sudo apt install rsync
2、放行873端口;
3、进行Rsync配置文件编辑;
[zhaiker] #配置名字
path=/www/wwwroot/www.zkjd.me/ #需要主服务器同步文件目录
use chroot=no
max connections=10
read only=yes
write only=no
list=no
uid=root
gid=root
auth users=zhaiker #用户名
secrets file=/etc/rsync_server.pas #密码文件
strict modes=yes
hosts allow=* #指定IP,或者*所有人可以连接;
#hosts deny=1.1.1.1
ignore errors=yes
timeout=120
直接复制上面代码到根目录里面/etc/rsyncd.conf,如果没有这个文件请手动创建;
4、创建密码配置文件;
还是在根目录/etc/rsync_server.pas里面填写自己的账户密码如下图;
5、修改rsync_server.pas文件权限,此项非常重要!
将rsync_server.pas文件权限设置为600,所有者为ROOT;
6、启动A服务器的Rsync服务;
Centos:/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
Ubuntu:sudo systemctl start rsync
A服务器上我们就配置完成了。
0x03 配置B从服务器
1、与A一样首先安装rsync
,然后放行端口873;重复操作就不演示了;
2、在根目录 /etc
目录创建密码文件 rsync_client.pas
内容里只填密码!如下图:
3、继续设置权限为600,所有人为ROOT;
4、在B从服务器宝塔面板上添加计划任务。
代码如下:
rsync -avztopg --delete rsync://zhaiker@这里填A服务器IP/zhaiker /www/wwwroot/www.zkjd.me --password-file=/etc/rsync_client.pas
执行周期自己选择多久一次,根据实际需求自己选择。
首次添加定时任务后,因为文件较多。可以手动点一下执行同步。不影响以后的定时同步。
同步结果都可以查看任务日志。
Comments NOTHING