批分发和批同步脚本

说在前面
  • 工作环境: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 ;

猜你喜欢

转载自blog.csdn.net/king123456man/article/details/81738122
今日推荐