linux命令执行批处理脚本启动和关闭zookeeper

1.脚本命令:

vim xcallzk.sh

其中hosts文件和zkServer.sh的位置需要和你本机的安装位置一致

#!/bin/bash
# 获取控制台指令
cmd=$*

# 判断指令是否为空
if [ ! -n "$cmd" ]
then
    echo "command can not be null!"
    exit
fi

# 获取当前登录用户
user=`whoami`

# 在从机执行命令,需要根据具体集群情况配置
hosts=(master slave1 slave2)

case $1 in
"start"){

for host in ${hosts[@]}
do
    echo "======current host is $host======"
    ssh $user@$host "sh /home/zookeeper/zookeeper-3.4.10/bin/zkServer.sh start"
done
};;

"stop"){

for host in ${hosts[@]}
do
    echo "======current host is $host======"
    ssh $user@$host "sh /home/zookeeper/zookeeper-3.4.10/bin/zkServer.sh stop"
done
};;

esac
echo "execute successfully !"

2.运行环境

修改文件权限:

chmod 777 xcallzk.sh

运行命令发现显示启动成功,但是使用jps没有进程,但是直接不使用ssh启动是可以的,查了下资料。原来是ssh远程执行的需要配置一个环境变量:

vim ~/.bashrc

将etc/profile下面的自己配置的环境变量拷贝过来,主要是java环境

重新运行脚本命令,再使用jps查询,启动成功:

# 启动
./xcallzk.sh start

# 关闭
./xcallzk.sh stop


版权声明:本文为thetimelyrain原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。