Liunx运维批量启动、停止服务

      在日常运维过程中,经常会碰到需要批量启动若干个应用服务,若果手动一个一个启动,非常耗时效率很低,这时候可以考虑脚本批量启动。

一、批量启动应用服务

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

你可能感兴趣的:(devops,运维,java,服务器)