rsync集群间文件同步
Posted kobe1024
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rsync集群间文件同步相关的知识,希望对你有一定的参考价值。
1、rsync 集群间文件同步
1.1、rsync简介
rsync用于文件同步
它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也可以当作文件复制工具,替代cp和mv命令。
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免密操作。
#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集群间文件同步的主要内容,如果未能解决你的问题,请参考以下文章