实时免密远程同步 rsync+inotifywait

实现自动远程实时同步文件的方法:
1、ssh远程密钥登陆
由于远程同步需要密码验证,我们通过公私钥免密码登陆远程主机,从而实现远程自动同步。
2、rsync(触发事件调用 rsync 远程同步文件至一台或多台服务器)
一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
3、inotifywait(对文件系统事件实时监控)
一种强大的、细粒度的、异步文件系统监控机制,它满足各种各样的文件监控需要,可以监控文件系统的访问属性、读写属性、权限属性、删除创建、移动等操作,也就是可以监控文件发生的一切变化。
一、部署无密码登陆(这里以web1为管理主机,配置免密登录web4,web5,web6)
[root@web1 ~]# vim ip.config 存放需要远程ssh免密登录的ip
192.168.1.4 web4
192.168.1.5 web5
192.168.1.6 web6
[root@web1 ~]# vim ssh_without_pass.sh

#!/bin/bash
ssh-keygen -t rsa -b 2048 -N "" -f $HOME/.ssh/id_rsa

cat $HOME/.ssh/id_rsa.pub >$HOME/.ssh/authorized_keys
chmod 600 $HOME/.ssh/authorized_keys

for ip in $(awk '{print $1}' ip.config); do
    rsync -av -e 'ssh -o StrictHostKeyChecking=no' $HOME/.ssh/authorized_keys root@$ip:$HOME/.ssh/
done

[root@web1 ~]# ./ssh_without_pass.sh 执行
ssh -o StrictHostKeyChecking=no #SSH免密码登陆避免首次需要输入yes

二、编写安装rsync和inotify工具,并实时监控目录的shell脚本,当有变更的时候就自动的执行同步
[root@web1 ~]# vim rsync_inotify_install.sh

#!/bin/bash
yum -y install rsync gcc make
tar -xf inotify-tools-3.13.tar.gz	#源码安装inotify
cd inotify-tools-3.13
./configure
make && make install
which inotifywait

[root@web1 ~]# chmod +x rsync_inotify_install.sh
[root@web1 ~]# ./rsync_inotify_install.sh
[root@web1 ~]# vim rsync_inotifywait.sh

#!/bin/bash
dir=/opt	#设置需要实时同步的目录
while inotifywait -rqq $dir		#运行成功则执行以下代码
do
	rsync -a -e 'ssh -o StrictHostKeyChecking=no' --delete $dir  root@$ip:/$dir
done

[root@web1 ~]#chmod +x ./rsync_inotifywait.sh
[root@web1 ~]#./rsync_inotifywait.sh & 放入后台运行
[root@web1 ~]# jobs -l 查看当前在后台运行的命令
[1]+ 19047 运行中 ./rsync_inotifywait.sh &

三、添加开机自启动
因为inotify只在启动时会监控目录,在没有启动期间的文件发生的更改,是不知道的,所以这里添加开机自启动,防止各种意外遗漏,保证目录一致。
echo “/root/rsync_inotifywait.sh &” >> /etc/rc.local

每次触发都要扫描整个目录进行文件差异对比, 文件越多越耗时长

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值