一键关服务脚本

一键关服务脚本

stop.sh文件

#!/bin/bash

CNF_FILE="stop.cnf"

CNF_LINES=(`cat $CNF_FILE`)
count=0
for item in ${CNF_LINES[@]}
do
	((count++))
	item=(${item//->/ })
	echo "$count、${item[0]}" 
done

read -p '请选择:' choice

#验证用户输入必须为小于等于配置文件的行数的整数
if [[ $choice =~ ^[0-9]+$ ]]
then
    if [ $choice -gt $count -o $choice -lt 1 ]
    then
		echo "选择必须是在1和$count之间,脚本将会退出"
        exit 0
    fi
else
    echo '选择必须是一个数值,脚本将退出'
    exit 0
fi

#自定义函数调用服务自带脚本关闭服务
function stopSers(){
	LINE=$1
	LINE=(${LINE//@/ })
	SERS=${LINE[0]}
	SERS=${SERS//,/ }
	count=0
	for item in $SERS
	do 
		RST=`jps -ml|grep -w $item`
		if [[ $RST ]]
		then
			count=1
			break
		fi
	done
	if [ $count -eq 1 ]
	then
		RST=`${LINE[1]//#/ }`
		echo "STOPPED"
	else
		echo "NONE"
	fi
}
#z自定义函数通过系统通用函数kill关闭服务
function killSers(){
	LINE=$1
	LINE=${LINE//,/ }
	count=0
	for item in $LINE
	do
		PID=`jps -ml|grep -w $item|awk {'print $1'}`
		
		if [[ $PID ]]
		then
			PID=`kill -9 $PID`
			((count++))
		fi
	done
	if [ $count -gt 0 ]
    then
        echo "STOPPED"
    else
        echo "NONE"
    fi

} 

#自定义函数根据参数类型和操作字符串关闭服务
function stopByLine(){
	SIGN=$1
	TYPE=$2
	LINE=$3
	case $TYPE in
	'STOP')
		LINE=${LINE//;/ }
		for item in $LINE
		do
			RST=`stopSers $item`
			item=(${item//@/ })
			item=${item[0]}
			case $RST in
			"STOPPED")
				echo 'services_[_'$item'_]_stopped '			
			;;
			"NONE")
				echo 'no_services_[_'$item'_]_existed '
			;;
			esac
		done
	;;
	'KILL')
		RST=`killSers $LINE`
		case $RST in
            "STOPPED")
                echo 'services_[_'$LINE'_]_stopped '            
            ;;
            "NONE")
                echo 'no_services_[_'$LINE'_]_existed '
            ;;
            esac
	;;
	esac
}

#根据用户的选择向后关闭服务
count=0
while(( $count<$choice ))
do
	LINE=${CNF_LINES[$count]}
	LINE=(${LINE//->/ })
	SIGN=${LINE[0]}
	TYPE=${LINE[1]}
	LINE=${LINE[2]}
	RST=`stopByLine $SIGN $TYPE $LINE`
	for item in $RST
	do
		echo ${item//_/ }
	done	
	((count++))
done

stop.cnf文件

hbase->STOP->HRegionServer_HMaster@stop-hbase.sh
zookeeper->STOP->QuorumPeerMain@zkServer.sh#stop
zeppelin->STOP->ZeppelinServer@zeppelin-daemon.sh#stop
spark->STOP->Worker@stop-work.sh;Master@stop-master.sh
kafka->STOP->Kafka@kafka-server-stop.sh
hive->KILL->HiveMetaStore,HiveServer2
hadoop->STOP->NameNode,SecondaryNameNode,DataNode@stop-dfs.sh;ResourceManager,NodeManager@stop-yarn.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值