如何实现Linux多台服务器间的文件双向同步

如何实现Linux多台服务器间的文件双向同步,第1张

1.跨平台使用;

2.对内核和用户权限没有特别要求;

3.Unison是双向的,它能自动处理两分拷贝中更新没有冲突的部分,有冲突的部分将会显示出来让用户选择更新策略;

4.只要是能连通的两台主机,就可以运行unison,可以直接使用socket连接或安全的ssh连接方式,对带宽的要求不高,使用类似rsync的压缩传输协议。

#server1地址:192.168.20.1

#shell:

 

#!/bin/bash

ip2="192.168.20.2"

ip3="192.168.20.3"

src2="/home/server1/"

dst2="/home/server2/"

dst3="/home/server3/"

/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src2 | while read line do

/usr/local/bin/unison -batch $src2 ssh://$ip2/$dst2

/usr/local/bin/unison -batch $src2 ssh://$ip3/$dst3

echo -n "$line " >> /var/log/inotify.log

echo `date | cut -d " " -f1-4` >> /var/log/inotify.log

done 

server2    地址192.168.20.2

shell

#!/bin/bash 

ip1="192.168.20.1"

ip3="192.168.20.3"

src1="/home/server2/"

dst1="/home/server1/"

dst3="/home/server3/"

/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src1 | while read line do

/usr/local/bin/unison -batch $src1 ssh://$ip1/$dst1

/usr/local/bin/unison -batch $src1 ssh://$ip3/$dst3

echo -n "$line " >> /var/log/inotify.log

echo `date | cut -d " " -f1-4` >> /var/log/inotify.log

done

server3    地址192.168.20.3

shell

#!/bin/bash 

ip1="192.168.20.1"

ip2="192.168.20.2"

src3="/home/server3/"

dst1="/home/server1/"

dst2="/home/server2/"

/usr/local/bin/inotifywait -mrq -e create,delete,modify,move $src3 | while read line do

/usr/local/bin/unison -batch $src3 ssh://$ip1/$dst1

/usr/local/bin/unison -batch $src3 ssh://$ip2/$dst2

echo -n "$line " >> /var/log/inotify.log

echo `date | cut -d " " -f1-4` >> /var/log/inotify.log

done


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/6148120.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-16
下一篇 2023-03-16

发表评论

登录后才能评论

评论列表(0条)

保存