线上多服务管理工具实例剖析
来源:互联网 发布:4g网络摄像头哪家好 编辑:程序博客网 时间:2024/05/29 12:07
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应用管理操作的模块
0 0
- 线上多服务管理工具实例剖析
- 线上多服务管理工具实例剖析
- 线上团队项目管理工具
- 排查Java线上服务故障的方法和实例分析
- 排查Java线上服务故障的方法和实例分析
- 排查Java线上服务故障的方法和实例分析
- MySQL多实例的实现#线上服务器
- 关于 管理工具---服务。
- ubuntu服务管理工具
- 服务管理工具 chkconfig
- 服务管理工具-Monit
- 线上线下 服务到家
- 线上服务增加varnish缓存
- java线上服务问题排查
- java线上服务问题排查
- nginx1.6.2配置实例-线上
- Fedora 新的服务管理工具
- 线上服务经常性死机问题分析总结
- Shell内部变量
- TCP,UDP,IP总结
- 设计模式--策略模式Strategy
- 关于JSP中加载js,check函数不能正确抛异常
- TCP的流量控制
- 线上多服务管理工具实例剖析
- 理解 Objective-C Runtime
- OC基础——类和对象
- 1007. 素数对猜想(PAT Basic)
- android系统属性的使用
- 异步通讯方式--信号
- ddgjkll
- 怎样更好地使用快捷键?
- Java 实现按行读取文件并且将行中的重复数据删除