脚本赋权限
chmod +x 脚本文件
可以把脚本添加到 /bin目录下,重启环境变量,让其生效(root用户下)
source /etc/profile
假设有三台服务器,test01,test02,test03
集群分发脚本
#!/bin/bash
#1.判断参数个数
if [ $# -lt 1 ]
then
echo Not Enough Arguement!
exit;
fi
#2.遍历集群所有机器
for host in test01 test02 test03
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
查看集群进程
#!/bin/bash
for host in test01 test02 test03
do
echo =============== $host ===============
ssh $host jps
done
启动kafka集群脚本
#!/bin/bash
case $1 in
"start")
for i in test01 test02 test03
do
echo "-- 启动 $i kafka ---"
ssh $i "//opt/module/zookeeper-3.6.3/bin/zkServer.sh start "
ssh $i "/opt/module/kafka_2.12-3.0.1/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.12-3.0.1/config/server.properties"
done
;;
"stop")
for i in test01 test02 test03
do
echo "-- 停止 $i kafka ---"
ssh $i "/opt/module/kafka_2.12-3.0.1/bin/kafka-server-stop.sh "
ssh $i "/opt/module/zookeeper-3.6.3/bin/zkServer.sh stop "
done
;;
esac
仅供参考
待更新。。。。