IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> centos7虚拟机sheel一键关闭服务脚本 -> 正文阅读

[开发工具]centos7虚拟机sheel一键关闭服务脚本

cd ~/installsheel

vim stop.cnf

hbase->STOP->Dhbase,HMaster@stop-hbase.sh
zookeeper->STOP->zoo.cfg@zkServer.sh#stop
hive->KILL->HiveMetaStore,HiveServer2
hadoop->STOP->NameNode,SecondaryNameNode,DataNode@stop-dfs.sh;ResourceManager,NodeManager@stop-yarn.sh
zeppelin->STOP->ZeppelinServer@zeppelin-daemon.sh#stop

vim stopservice.sh

#!/bin/bash
source /etc/profile

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 ] #-o 或者
	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			#COUNT赋值1
			break
		fi
	done
	if [ $COUNT -eq 1 ]			#如果COUNT是1
	then	
		RST=`${LINE[1]//#/ }`			#调出相应的关闭命令
		echo "STOPPED"
	else
		echo "NONE"
	fi
}
#自定义函数通过系统通用函数kill关闭服务
function killSers(){
	LINE=$1
	LINE=${LINE//,/ }				#,号替换成 空格
	COUNT=0	
	for item in $LINE				#遍历服务2个runjar服务
	do
		PID=`jps -ml|grep -w $item|awk {'print $1'}`  #管道查找服务当前行拿第一个元素	
		if [[ $PID ]]			#如果存在COUNT++
		then
			((COUNT++))			
			kill -9 $PID		#停止进程
		fi
	done
	if [ $COUNT -gt 0 ]  #>0
      then
            echo "STOPPED"
      else
            echo "NONE"
      fi
	
}

#自定义函数根据参数类型和操作字符串关闭服务
function stopByLine(){
	SIGN=$1    					#hive hadoop
	TYPE=$2					#KILL	      STOP
	LINE=$3					#服务		服务@关闭命令
	case $TYPE in				
	"STOP")					#如果TYPE是 STOP
		LINE=${LINE//;/ }			#分成两段
		for item in $LINE			#遍历每一段
		do 
			RST=`stopSers $item`	#调用函数
			item=(${item//@/ })	#
			item=${item[0]}
			case $RST in		#函数返回值有两种情况一种是只要有服务关闭了返回STOPPED
			"STOPPED")
				echo '服务_[_'$item'_]_停止'
			;;
			"NONE")			#另一种没有服务关闭返回NONE
				echo '没有此服务_[_'$item'_]_存在'			
			;;
			esac
		done
	;;
	"KILL")					#如果TYPE是KILL
		RST=`killSers $LINE`
		case $RST in			#这种用法相当于java中的switch case
            "STOPPED")
                   echo '服务_[_'$LINE'_]_停止'
            ;;
            "NONE")
                   echo '没有此服务_[_'$LINE'_]_存在'             
            ;;
            esac	
	;;
	esac
}


#根据用户的选择项后关闭服务
COUNT=0
while (( $COUNT<$choice ))			#从头开始拿到选择前一个数 选2 拿0,1       选1 拿0
do
	LINE=${CNF_LINES[$COUNT]}		
	LINE=(${LINE//->/ })  			#两个// 是替换所有的意思 LINE是
	SIGN=${LINE[0]}				#SIGN 是: hive hadoop
	TYPE=${LINE[1]}				#TYPE 是: KILL STOP
	LINE=${LINE[2]}				#LINE 是: 服务@关闭命令
	RST=`stopByLine $SIGN $TYPE $LINE`	#函数循环带入参数
	for item in $RST				
	do				
		echo ${item//_/ }			#把运行输出结果替换_变成 空格
	done
	((COUNT++))
done

chmod u+x stopservice.sh

./stopservice.sh

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-07-07 11:48:49  更:2021-07-07 11:49:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/6 21:41:14-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码