原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。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


