原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1583156
#!/bin/bash # # 本脚本用来对系统上的多服务进行管理操作 # 目前仅支持nginx、tomcat和jar包类的java应用进行管理操作 # Written by sunsky # Mail : 274546888@qq.com # Date : 2014-11-26 15:00:00 # function USAGE { echo -e "33[31m脚本名称: 33[37m" echo " $0" echo -e "33[31m语法结构: 33[37m" echo " $0 {nginx|tomcat|*service} {start|stop|restart|status}" echo -e "33[31m使用范例: 33[37m" echo " $0 nginx start" echo " $0 tomcat restart" echo " $0 vin-service status" echo -e "33[31m注意事项: 33[37m" echo " 1. 该脚本管理的目录必须遵循如下规则:" echo " a) nginx 部署路径必须能够通过 /usr/local/nginx 访问到" echo " b) tomcat 部署路径必须能够通过 /usr/local/tomcat 访问到" echo " c) service 类服务的部署路径必须能够通过 /home/apps/service类项目名/current/ 访问到" echo " 2. \$1(服务类型)和\$2(操作)参数必须存在" exit 2 } function CAT_FUWU { if [ -z $PID ];then case $SIGNAL in start|restart) echo "正在启动 $FUWU 服务" ;; stop) echo "$FUWU 服务已经关闭" exit ;; status) echo "$FUWU 服务处于关闭" ;; esac else case $SIGNAL in start) echo "$FUWU 服务已经开启" exit 0 ;; stop|restart) echo "你所要杀掉的 $FUWU 服务对应的进程号为 $PID" ;; status) echo "$FUWU 服务目前正在运行,对应的进程号为 $PID" ;; esac fi } function KILL_FUWU { if [[ $PID != "" ]];then for i in $PID;do kill $PID >/dev/null 2>&1 sleep 3 kill -9 $PID >/dev/null 2>&1 done fi } function START_NGINX { /usr/local/nginx/sbin/nginx PID=`ps -ef|awk '$0~"nginx"&&$0~"master"&&$0!~"awk"{print $2}'` echo "$FUWU 服务已经启动,它所对应的进程号为 $PID" } function START_TOMCAT { /bin/bash /usr/local/tomcat/bin/startup.sh >& /dev/null PID=`ps aux|awk '$0~"java"&&$0~"tomcat"&&$0!~"awk"{print $2}'` echo "$FUWU 服务已经启动,它所对应的进程号为 $PID" } function START_SERVICE { /bin/bash /home/apps/$FUWU/current/startup.sh & PID=`ps -ef|awk '$0~"'$FUWU'"&&$0~"jar"&&$0!~"awk"{print $2}'` echo "$FUWU 服务已经启动,它所对应的进程号为 $PID" } function FUWU_LIST { case $SIGNAL in start) CAT_FUWU $1 ;; stop) CAT_FUWU KILL_FUWU ;; restart) CAT_FUWU KILL_FUWU $1 ;; status) CAT_FUWU ;; *) USAGE ;; esac } function NGINX { PID=`ps -ef|awk '$0~"nginx"&&$0~"master"&&$0!~"awk"{print $2}'` FUWU_LIST START_NGINX } function TOMCAT { PID=`ps aux|awk '$0~"java"&&$0~"tomcat"&&$0!~"awk"{print $2}'` FUWU_LIST START_TOMCAT } function SERVICE { if [ ! -f /home/apps/$FUWU/current/startup.sh ];then USAGE fi PID=`ps -ef|awk '$0~"'$FUWU'"&&$0~"jar"&&$0!~"awk"{print $2}'` FUWU_LIST START_SERVICE } if [ $# -lt 2 ];then USAGE fi FUWU=$1 SIGNAL=$2 case $1 in nginx) NGINX ;; tomcat) TOMCAT ;; *service) SERVICE ;; *) USAGE ;; esac
USAGE # 帮助模块喽 CAT_FUWU # 用于在接收到用户操作时,判断服务当前状态并给予正确相应 KILL_FUWU # 负责杀掉服务的公共模块 START_NGINX # 负责启动NGINX应用的模块 START_TOMCAT # 负责启动TOMCAT应用的模块 START_SERVICE # 负责启动JAR包类的JAVA应用的模块 FUWU_LIST # 负责响应单个服务操作的公共列表 NGINX # 集合NGINX管理操作的模块 TOMCAT # 集合TOMCAT管理操作的模块 SERVICE # 集合JAR包类JAVA应用管理操作的模块
转自:http://nolinux.blog.51cto.com/4824967/1583156
原创文章,作者:s19930811,如若转载,请注明出处:http://www.178linux.com/1932