hadoop_批量命令指令碼&同步檔案指令碼

董秀才發表於2018-09-15

1、xcall.sh  批量命令指令碼,例:xcall.sh jps ,檢視hadoop101~ hadoop104的jps程式

  注意:在執行命令的時候,若是提示沒有這個命令,但是在本機又可以執行,記得在/usr/local/bin 下面建立一個符號連線指向那個命令所在目錄。

#!/bin/bash
#命令引數
params=$@
for((i=101;i<105;i=$i+1))do
    echo ====== hadoop$i  $params ======
    ssh hadoop$i $params
done

2、xsync.sh  叢集同步檔案,分發檔案指令碼,例:xsync.sh /usr/loacl/test.sh,在hadoop101~hadoop104上的/usr/local/下同步分發test.sh

#!/bin/bash
path=$1
#判斷是否有引數,若無引數
if [ $# -lt 1 ]
then
  #提示無路徑,沒有引數
  echo "no path"
  #退出
  exit
fi
#得到當前檔名
filename=`basename $path`
#echo $filename
#得到檔案路徑,為防止用的相對路徑,所以先cd 當前檔案路徑,然後pwd -P 獲得絕對路徑
dir=`dirname $path`
cd $dir
fullpath=`pwd -P`
#echo $fullpath
#得到當前使用者
username=`whoami`
#i可以當作主機名的字尾
for ((i=101;i<105;i=$i+1))
do
  #進行分發命令,後面的主機名根據自己改
  rsync -rvl $fullpath/$filename $username@hadoop$i:$fullpath
  echo "--hadoop$i........SUCCESS" 
done
echo "--SUCCESS"

 

相關文章