部署kafka集群的服务器名称为:node101、node102、node103。
批量启动、停止zookeeper,查看zookeeper开启状态
在/opt/module/zookeeper/bin/目录中,新建zk.sh脚本文件
root@test101 bin$ touch zk.sh
root@test101 bin$ vim zk.sh
将以下内容写到zk.sh中
#!/bin/bash
array=(101 102 103) #定义数组
case $1 in
"start"){
for (( i=0;i<${#array[@]};i++ ))
do
echo ---- zookeeper node${array[i]} 启动 ----
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
#判断当前节点与目标节点之间能否ping通;-c表示次数;-w表示等待时间(单位:秒)
ssh node${array[i]} "/opt/module/zookeeper/bin/zkServer.sh start"
#双引号内为zookeeper启动指令,写入zkServer.sh的绝对路径
else
echo "zookeeper node${array[i]} 网络断开连接,启动失败"
fi
done
}
;;
"stop"){
for (( i=0;i<${#array[@]};i++ ))
do
echo ---- zookeeper node${array[i]} 停止 ----
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
ssh node${array[i]}i "/opt/module/zookeeper/bin/zkServer.sh stop"
else
"zookeeper node${array[i]} 网络断开连接,操作失败"
fi
done
}
;;
"status"){
for (( i=0;i<${#array[@]};i++ ))
do
echo ---- zookeeper node${array[i]} 状态 ----
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
ssh node${array[i]} "/opt/module/zookeeper/bin/zkServer.sh status"
else
"zookeeper node${array[i]} 网络断开连接,无法获取状态信息"
fi
done
}
;;
esac
退出后添加可执行权限
root@test101 bin$ chmod 777 zk.sh
zk.sh脚本使用
root@test101 bin$ ./zk.sh start #开启zookeeper
root@test101 bin$ ./zk.sh stop #停止zookeeper
root@test101 bin$ ./zk.sh status #查看zookeeper开启状态
批量启动、停止kafka,查看kafka开启状态
在/opt/module/kafka/bin/目录中,新建kf.sh脚本文件
root@test101 bin$ touch kf.sh
root@test101 bin$ vim kf.sh
将以下内容写到kf.sh中,
#!/bin/bash
array=(101 102 103)
case $1 in
"start"){
for (( i=0;i<${#array[@]};i++ ))
do
echo "---- 启动 node${array[i]} kafka ----"
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
ssh node${array[i]} "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties"
else
echo "kafka node${array[i]} 网络断开连接,启动失败"
fi
done
};;
"stop"){
for (( i=0;i<${#array[@]};i++ ))
do
echo "---- 停止 node${array[i]} kafka ----"
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
ssh node${array[i]} "/opt/module/kafka/bin/kafka-server-stop.sh"
else
echo "kafka node${array[i]} 网络断开连接,操作失败"
fi
done
};;
"status"){
for (( i=0;i<${#array[@]};i++ ))
do
echo "---- kafka node${array[i]} 状态 ----"
if ping -c 1 -w 1 node${array[i]} > /dev/null;then
num=$( ssh node${array[i]} ps -ef | grep kafka | grep -vc grep )
#判断kafka是否启动;返回0表示未启动;返回其他正整数表示已启动
if [ $num -eq 0 ];then
echo "kafka未启动"
else
echo "kafka已启动"
fi
else
echo "kafka node${array[i]} 网络断开连接,无法获取状态信息"
fi
done
};;
esac
退出后添加可执行权限
root@test101 bin$ chmod 777 kf.sh
批量开启/停止kafka,查看kafka状态
root@test101 bin$ ./kf.sh start
root@test101 bin$ ./kf.sh stop
root@test101 bin$ ./kf.sh status
在kf.sh中添加写入日志功能
#!/bin/bash
echo -e "\n`date`\n执行脚本kf.sh" >> /root/shell/kafka-log.txt
#在日志/root/shell/kafka-log.txt中写入脚本执行时间
function doWork()
{
array=(101 102 103)
case $1 in
"start"){
for (( i=0;i<${#array[*]};i++))
do
echo "--- 启动 node${array[i]} kafka ---"
if ping -c 1 -w 1 node${array[i]} > /dev/null ; then
ssh node${array[i]} "/opt/modules/kafka/bin/kafka-server-start.sh -daemon /opt/modules/kafka/config/server.properties"
else
echo "kafka node${array[i]} 网络断开连接,启动失败"
fi
done
};;
"stop"){
for (( i=0;i<${#array[*]};i++))
do
echo "--- 停止 node${array[i]} kafka ---"
if ping -c 1 -w 1 node${array[i]} > /dev/null ; then
ssh node${array[i]} "/opt/modules/kafka/bin/kafka-server-stop.sh"
else
echo "kafka node${array[i]} 网络断开连接,操作失败"
fi
done
};;
"status"){
for (( i=0;i<${#array[*]};i++))
do
echo "--- 查看 node${array[i]} kafka状态 ---"
if ping -c 1 -w 1 node${array[i]} > /dev/null ; then
num=$( ssh node${array[i]} ps -ef | grep kafka | grep -vc grep )
if [ $num -eq 0 ]; then
echo "Kafka未启动"
else
echo "Kafka已启动"
fi
else
echo "kafka node${array[i]} 网络断开连接,无法获取状态信息"
fi
#unset name
done
};;
esac
}
doWork $1 | tee -a /root/shell/kafka-log.txt #将执行脚本时打印的内容存入日志中
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)