kafka 集群环境部署准备 - 文件分发及 xsync 脚本编写

集群文件分发

在集群部署过程中文件同步分发是一个非常基础的工作,您可以通过 scp、rsync 来分发、同步文件或者文件夹。

1. scp

scp 是 secure copy 的缩写, scp 是 linux 系统下基于 ssh 登陆进行安全的远程文件拷贝命令。如 :

scp -r /jdk root@192.168.1.102:/jdk

2. rsync 远程同步工具

rsync 可以理解为 remote sync(远程同步),但它不仅可以远程同步数据(类似于 scp 命令),还可以本地同步数据(类似于 cp 命令)。

不同于 cp 或 scp 的一点是,使用 rsync 命令备份数据时,不会直接覆盖以前的数据(如果数据已经存在),而是先判断已经存在的数据和新数据的差异,只有数据不同时才会把不相同的部分覆盖。

yum -y install rsync
rsync -av /jdk root@192.168.1.102:/jdk

3. xsync 脚本工具

我们可以编写一个自定义脚本工具,一次性将文件同步多台从服务器 :

3.1 在系统用户目录下创建 bin 文件夹并下创建 sh 脚本:

/root/bin/xsync.sh

3.2 编写以下脚本

#!/bin/bash

if [ $# -lt 1 ]
then echo 参数错误
	exit;
fi

# 此处配置多台服务器
for host in 192.168.1.102 192.168.1.103
do
	echo ------------- $host ----------------
	for file in $@
	do
		if [ -e $file ]
			then
				pdir=$(cd -P $(dirname $file); pwd)
				fname=$(basename $file)
				ssh $host "mkdir -p $pdir" 
				rsync -av $pdir/$fname $host:$pdir
			else 
				echo $file 不存在...
		fi
	done
done

3.3 测试命令

xsync.sh a.txt