在日常运维过程中,经常会碰到需要批量启动若干个应用服务,若果手动一个一个启动,非常耗时效率很低,这时候可以考虑脚本批量启动。
一、批量启动应用服务
1、准备服务列表
将需要启动的服务文件写入文件svc_list.txt
cat >> svc_list.txt << EOF
> server1
> server2
> server3
> server4
> server5
> server6
> EOF
2、批量启动脚本foreach_start.sh
#!bin/bashJAVA_OPTS="${JAVA_OPTS} -Xmx256m -Xms256m"echo “共有$#个服务需要启动”for arg in "$@"
doecho "当前启动的服务-> $arg"nid=`jps| grep $arg | awk '{print $1}'`if [[ -z $nid ]]; thenecho "没有正在运行的$arg......直接启动"elseecho "扫描到正在运行的$arg...执行关闭"kill -9 $nidfiecho "执行启动命令[ java -jar $JAVA_OPS $arg.jar >> ./log/$arg.log 2>&1 & ]"nohup java -jar $JAVA_OPTS $arg.jar >> ./log/$arg.log 2>&1 &cid=$(ps -ef | grep $arg | grep -v "grep" | awk '{print $2}')if [[ -z $cid ]];thenecho "$arg启动失败,请查看日志"elseecho "$arg启动成功,进程$cid"fi
sleep 1
done
3、执行启动
cat svc_list.txt | xargs sh foreach_start.sh
二、批量停止服务foreach_stop.sh
#!bin/bash
for arg in "$@"
doecho "当前启动的服务-> $arg"nid=`jps| grep $arg | awk '{print $1}'`if [[ -z $nid ]]; thenecho "没有正在运行的$arg......直接启动"elseecho "扫描到正在运行的$arg...执行关闭"kill -9 $nidfi
done