美文网首页
单实例kafka+zk且zk非独立部署启停、清数据脚本

单实例kafka+zk且zk非独立部署启停、清数据脚本

作者: 枕梦_a280 | 来源:发表于2023-06-20 01:07 被阅读0次
#!/bin/bash
MY_PATH=`cd $(dirname $0); pwd`
EXEC_TIME=`date +%Y%m%d-%H-%M-%S`
KAFKA_HOME=/opt/data/kafka/kafka_2.13-3.4.0
KAFKA_LOG=/opt/data/kafka/kafka_2.13-3.4.0/logs
KAFKA_DATA=/opt/data/kafka/kafka_2.13-3.4.0/logs/kafka
ZK_DATA=/opt/data/kafka/kafka_2.13-3.4.0/logs/zk
EXEC_ACTION=$1
IS_KAFKA_RUNNING=`ps -ef|grep kafka|grep -v grep|grep server.properties|wc -l`
IS_ZOOKEEPER_RUNNING=`ps -ef|grep kafka|grep -v grep|grep zookeeper.properties|wc -l`

function exec_start_zookeeper () {
  if [ ${IS_ZOOKEEPER_RUNNING} -eq 0 ];then
    echo -e "starting zookeeper ... ..."
    # start zookeeper process
    cd ${MY_PATH}
    cd ${KAFKA_HOME}
    nohup ${KAFKA_HOME}/bin/zookeeper-server-start.sh ${KAFKA_HOME}/config/zookeeper.properties > ${ZK_DATA}/zookeeper.log 2>&1 &
    if [ $? -eq 0 ];then
      echo -e "zookeeper start successed."
    else
      echo -e "zookeeper start failed" 
      exit 1
    fi
  else
    echo -e "zookeeper is already running"
  fi
}
function exec_start_kafka () {
  if [ ${IS_KAFKA_RUNNING} -eq 0 ];then
    echo -e "starting kafka ... ..."
    # start kafka process
    cd ${MY_PATH}
    cd ${KAFKA_HOME}
    nohup ${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/server.properties > ${KAFKA_DATA}/kafka.log 2>&1 &
    if [ $? -eq 0 ];then
      echo -e "kafka start successed."
    else
      echo -e "kafka start failed" 
      exit 1
    fi
  else
    echo -e "kafka is already running"
  fi
}
function exec_stop_kafka () {
  if [ ${IS_KAFKA_RUNNING} -eq 1 ];then
    echo -e "stoping kafka ... ..."
    # stop kafka process
    cd ${MY_PATH}
    cd ${KAFKA_HOME}
    /bin/bash ./bin/kafka-server-stop.sh
    if [ $? -eq 0 ];then
      echo -e "kafka stop successed."
    else
      echo -e "kafka stop failed" 
    fi
  elif [ ${IS_KAFKA_RUNNING} -eq 0 ];then
    echo -e "kafka is already stoped"
  else
    echo -e "unknown error"
  fi
}
function exec_stop_zookeeper () {
  if [ ${IS_ZOOKEEPER_RUNNING} -eq 1 ];then
    echo -e "stoping kafka ... ..."
    # stop zookeeper process
    cd ${MY_PATH}
    cd ${KAFKA_HOME}
    /bin/bash ./bin/zookeeper-server-stop.sh
    if [ $? -eq 0 ];then
      echo -e "zookeeper stop successed."
    else
      echo -e "zookeeper stop failed" 
    fi
  elif [ ${IS_ZOOKEEPER_RUNNING} -eq 0 ];then
    echo -e "zookeeper is already stoped"
  else
    echo -e "unknown error"
  fi
}
function exec_clean_kafka () {
  cd ${MY_PATH}
  # backup before clean
  cd ${KAFKA_LOG}
  tar -zcvf kafka-${EXEC_TIME}.tar.gz kafka > /dev/null 2>&1
  tar -zcvf zk-${EXEC_TIME}.tar.gz zk > /dev/null 2>&1
  # clean kafka data
  cd ${KAFKA_HOME}
  /usr/bin/rm -rf ${KAFKA_DATA}/* 
  if [ $? -eq 0 ];then echo "clean kafka data successful";fi
  # clean zk data
  for files in `ls ${ZK_DATA}/|grep -v myid`;do /usr/bin/rm -rf ${ZK_DATA}/${files};done
  if [ $? -eq 0 ];then echo "clean zookeeper data successful";fi
}

function exec_case () {
  case "${EXEC_ACTION}" in
  "start")
    echo -e "waiting for ${EXEC_ACTION}"
    exec_start_zookeeper
    sleep 20
    exec_start_kafka 
  ;;
  "stop")
    echo -e "waiting for ${EXEC_ACTION}"
    exec_stop_kafka
    exec_stop_zookeeper
  ;;
  "restart")
    echo -e "waiting for ${EXEC_ACTION}"
    exec_stop_kafka
    exec_stop_zookeeper
    sleep 5
    exec_start_zookeeper
    sleep 20
    exec_start_kafka
  ;; 
  "clean")
    echo -e "waiting for ${EXEC_ACTION}"
    exec_stop_kafka
    exec_stop_zookeeper
    sleep 10
    exec_clean_kafka
    echo -e "kafka is stoped,please run 'kafka.sh start' to start server"
  ;;
  *)
    echo -e "Usage: ${MY_PATH}/kafka.sh [start|stop|restart|clean]"
    exit 1
  ;;
  esac
}

main () {
  exec_case
}
main

相关文章

网友评论

      本文标题:单实例kafka+zk且zk非独立部署启停、清数据脚本

      本文链接:https://www.haomeiwen.com/subject/ickyydtx.html