首页 > 代码库 > 线上多服务管理工具实例剖析
线上多服务管理工具实例剖析
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 | #!/bin/bash # # 本脚本用来对系统上的多服务进行管理操作 # 目前仅支持nginx、tomcat和jar包类的java应用进行管理操作 # Written by sunsky # Mail : 274546888@qq.com # Date : 2014-11-26 15:00:00 # function USAGE { echo -e "\033[31m脚本名称: \033[37m" echo " $0" echo -e "\033[31m语法结构: \033[37m" echo " $0 {nginx|tomcat|*service} {start|stop|restart|status}" echo -e "\033[31m使用范例: \033[37m" echo " $0 nginx start" echo " $0 tomcat restart" echo " $0 vin-service status" echo -e "\033[31m注意事项: \033[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 |
1 2 3 4 5 6 7 8 9 10 | USAGE # 帮助模块喽 CAT_FUWU # 用于在接收到用户操作时,判断服务当前状态并给予正确相应 KILL_FUWU # 负责杀掉服务的公共模块 START_NGINX # 负责启动NGINX应用的模块 START_TOMCAT # 负责启动TOMCAT应用的模块 START_SERVICE # 负责启动JAR包类的JAVA应用的模块 FUWU_LIST # 负责响应单个服务操作的公共列表 NGINX # 集合NGINX管理操作的模块 TOMCAT # 集合TOMCAT管理操作的模块 SERVICE # 集合JAR包类JAVA应用管理操作的模块 |
线上多服务管理工具实例剖析
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。