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