说在前面
- 工作环境:VMware® Workstation 12 Pro 12.5.6 build-5528349
- linux版本:CentOS-7-x86_64-Minimal-1611.iso
- JDK版本:jdk-8u65-linux-x64.tar.gz
- Hadoop版本:hadoop-2.7.6.tar.gz
在完全分布式的配置中,在修改了一台主机的文件后,需要执行n(n=分发的主机数)次命令来分发给n台主机,这样的操作实际上非常不方便,这时就需要使用批处理脚本来帮助我们提高效率。
批处理脚本
提示:为了全局可用,脚本都放在 /usr/local/bin 目录下
- 批分发指令脚本(xcall.sh)
//以本地用户身份创建xcall.sh
$>touch ~/xcall.sh //centosmin0
//将其复制到 /usr/local/bin 目录下
$>sudo mv xcall.sh /usr/local/bin
//修改权限
$>sudo chmod a+x xcall.sh
//添加脚本
$>sudo nano xcall.sh
#!/bin/bash
params=$@
i=201
for (( i=201 ; i <= 204 ; i = $i + 1 )) ; do
echo ============= s$i $params =============
ssh s$i "$params"
done
- 批同步脚本(xsync.sh):类似于同时处理 scp 指令
#!/bin/bash
if [[ $# -lt 1 ]] ; then echo no params ; exit ; fi
p=$1
#echo p=$p
dir=`dirname $p`
#echo dir=$dir
filename=`basename $p`
#echo filename=$filename
cd $dir
fullpath=`pwd -P .`
#echo fullpath=$fullpath
user=`whoami`
for (( i = 202 ; i <= 204 ; i = $i + 1 )) ; do
echo ======= s$i =======
rsync -lr $p ${user}@s$i:$fullpath
done ;