rsycn和inotify

本文介绍如何使用 Rsync 实现文件系统的实时同步,包括安装配置、脚本编写及后台执行等步骤。通过 inotify-tools 监听文件变动并触发 Rsync 同步,实现高效的数据同步。

Rsync

可以镜像保存整个目录树和文件系统
可以很容易做到保持原来文件的权限、时间、软硬链接等等
无须特殊权限即可安装
快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽
安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接支持匿名传输,以方便进行网站镜象

常用选项

//rsync常用选项:
    -a, --archive       //归档
    -v, --verbose       //啰嗦模式
    -q, --quiet         //静默模式
    -r, --recursive     //递归
    -p, --perms         //保持原有的权限属性
    -z, --compress      //在传输时压缩,节省带宽,加快传输速度
    --delete            //在源服务器上做的删除操作也会在目标服务器上同步

环境

机器ip软件目录
master192.168.50.60rsync,inotify-tooks,脚本/web1/wwwroot
slave192.168.50.61rsync/web1/wwwroot

安装使用

slave

yum -y install rsync
vim /etc/rsync.conf

pid file = /var/run/rsyncd.pid
lock file=/var/run/rsync.lock
log file=/var/log/rsyncd.log
[web1]
path = /web1/wwwroot
comment = web1 file
ignore errrors
read only=no
write only=no
hosts allow=*
hosts deny=192.168.60.10
list=false
uid=root
gid=root
auth users=web1user
secrets file=/etc/web1.pass

创建密码文件

(文件格式:user:pass)
/etc/web1.pass

web1user:www123

权限

chmod 600 /etc/web1.pass

启动和自启

systemctl start rsyncd
systemctl enable rsyncd

master (发布节点)

安装

yum install rsync gcc -y
wget http://github.com/downloads/rvoicilas/inotify-tools/ 
tar xf  inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure
make && make install 

密码文件

和节点服务器密码一致
vim /etc/server.pass
www123
chmod 600 /etc/server.pass

脚本编辑

#!/bin/bash
host1=192.168.50.61
src=/web/wwwroot/
dst1=web1
user1=web1user
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,delete,create,attrib $src \
| while read files
do
        /usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/server.pass $src $user1@$host1::$dst1 > /dev/null 2>&1
        echo "${files} was rsynced." >> /tmp/rsync.log 2>&1
done

脚本放入后台执行

在master上面的/web/wwwroot 添加\删除\修改文件
slave 上面的 /web1/wwwroot 会同步变化

扩展学习资源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值