linux 常用脚本模板

集群命令启动脚本:

#!/bin/bash
if [ $#  -lt  1 ]
then
 echo "请放入参数!"
 exit;
fi


case $1 in
"start")
for  zk  in hadoop202 hadoop203 hadoop204
do
   echo  ==========$zk:zookeeper启动=======
   ssh  $zk  "/opt/module/zookeeper-3.4.10/bin/zkServer.sh start"
done

;;
"stop")

for  zk  in hadoop202 hadoop203 hadoop204
do
   echo  ==========$zk:zookeeper停止=======
   ssh  $zk  "/opt/module/zookeeper-3.4.10/bin/zkServer.sh stop"
done
;;
"*")
  echo "请输入正确的参数start/stop!"
;;
esac

跨机器分发文件脚本:

#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
then
 echo Not Enough Arguement!
 exit;
fi

#2. 遍历集群所有机器
for host in hadoop202 hadoop203 hadoop204
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

Guess you like

Origin blog.csdn.net/First_____/article/details/121006624