rsync集群间文件同步

Posted kobe1024

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync集群间文件同步相关的知识,希望对你有一定的参考价值。

​1、rsync 集群间文件同步​

​1.1、rsync简介

rsync用于文件同步

它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cpmv命令。

r指的是 remote,rsync 其实就是"远程同步"(remote sync)的意思。与其他文件传输工具(如 FTP 或 scp)不同,rsync 的最大特点是会检查发送方和接收方已有的文件,仅传输有变动的部分

优点:

快速:第一次同步时rsync会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽

安全:可以使用scp、ssh等方式来传输文件,当然也可以通过直接的socket连接
支持匿名传输,以方便进行网站镜像

安装:

注意,传输的​双方​都必须​安装 rsync

# Debian​
$ sudo apt-get install rsync​
# Red Hat​
$ sudo yum install rsync

​1.2、shell 脚本​

本次脚本为了避免ssh时输入密码已做ssh免密操作。

#!/bin/bash

#1. 判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi

#2. 遍历集群所有机器
for host in zk01 zk02 zk03
do
echo ==================== $host ====================
#3. 遍历所有目录,挨个发送,即 执行脚本后链接目录
for file in $@
do
#4. 判断文件是否存在
if [ -e $file ]
then
#5. 获取父目录
pdir=$(cd -P $(dirname $file); pwd)
#6. 获取当前文件的名称
fname=$(basename $file)
ssh $host "mkdir -p $pdir"
rsync -av $pdir/$fname $host:$pdir
else
echo $file does not exists!
fi
done
done

以上是关于rsync集群间文件同步的主要内容,如果未能解决你的问题,请参考以下文章

rsync+inotify实时同步

rsync同步工具和xsyncxcall集群脚本

集群文件同步脚本工具rsyncxsync和xcall

集群文件同步脚本工具rsyncxsync和xcall

Rsync数据同步服务

rsync远程同步