侧边栏壁纸
博主头像
fynn博主等级

我们应该有恒心,尤其是要有自信心,必须相信自己是有能力的,而且要不惜任何代价把这种能力发挥出来。

  • 累计撰写 50 篇文章
  • 累计创建 21 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

rsync实时同步

fynn
2022-11-03 / 0 评论 / 0 点赞 / 5,220 阅读 / 507 字 / 正在检测是否收录...

网络环境

客户端 192.168.1.10 所有机器都与这台机器进行数据交互同步,保持与这台机器一模一样的数据
服务器A 192.168.2.10
服务器B 192.168.2.11

首先在服务器上安装软件并配置

  • 服务器A
yum install -y rsync
  • 配置rsync
vim /etc/rsyncd.conf

[web] (连接名称)
path = /www/wwwroot/ (同步目录,目录下的所有文件和目录)
ignore errors = yes
read only = false
write only = false
hosts allow = 192.168.1.10 (这里指定允许客户端ip访问,允许所有为 *)
hosts deny = *
list = false
uid = www
gid = www
use chroot = yes
auth users = sync (设定授权用户,虚拟的 非系统内的用户)
secrets file = /etc/rsyncd.passwd (这里是配置密码文件)
  • 配置密码
echo "sync:sync112233" >/etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd
rsync --daemon 

rsync --daemon #启动并重新加载配置文件
rsyncd.passwd 权限必须是600
服务器B同上配置,一模一样

  • 客户端 安装软件
yum install -y rsync inotify-tools
  • 配置密码
echo "sync112233" > /etc/rsyncd.passwd
chmod 600 /etc/rsyncd.passwd
  • 验证同步
    在/www/wwwroot/目录下创建一个文件a.txt
rsync -azvH --delete --password-file=/etc/rsyncd.passwd --exclude='.user.ini' /www/wwwroot/  rsync://sync@192.168.2.10/web
rsync -azvH --delete --password-file=/etc/rsyncd.passwd --exclude='.user.ini' /www/wwwroot/  rsync://sync@192.168.2.11/web

执行完命令查看服务器A,服务器B web配置下path指定的目录,我这里是/www/wwwroot/,这个目录下增加了 a.txt 表示配置完成

  • 创建文件监控脚本
vim /opt/inotify_rsync.sh

#!/bin/bash
INOTIFY_CMD="inotifywait -mrq -e create,delete,move,modify,attrib /www/wwwroot/ "
RSYNC1="rsync -azH --delete --password-file=/etc/rsyncd.passwd --exclude='.user.ini' /www/wwwroot/  rsync://sync@192.168.2.10/web"
RSYNC2="rsync -azH --delete --password-file=/etc/rsyncd.passwd --exclude='.user.ini' /www/wwwroot/  rsync://sync@192.168.2.11/web"

$INOTIFY_CMD | while read DIRECTORY EVENT FILE
do
    if [ $(pgrep rsync | wc -l) -le 0 ] ; then
        $RSYNC1
        $RSYNC2
        pwd
        fi
done

这个脚本要持久化运行,小编推荐 Supervisor进程管理
微信截图_20220527144407

0

评论区