蓝鲸进程管理脚本参考

蓝鲸进程管理脚本参考

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
#!/bin/bash

# use bash to execute this script
echo $BASH |grep -q 'bash' || { exec bash "$0" "$@" || exit 1; }

# enable extended pattern matching operators
shopt -s extglob

VERSION_BK="1.1.1"

DIR_HOME="$(readlink -f $(dirname $0))"

DIR_CMDB="$DIR_HOME/cmdb"
DIR_JOB="$DIR_HOME/job"
DIR_GSE="$DIR_HOME/gse"
DIR_ZK="$DIR_HOME/common/zookeeper/zookeeper-3.4.6"
DIR_DOWN="$DIR_HOME/index/download"
DIR_SESSION="$DIR_HOME/.session"

FILE_CONF="$DIR_HOME/bk.conf"
FILE_LOG="$DIR_HOME/bk.log"

FILE_TPL="$DIR_HOME/common/function.tpl"
FILE_FUNC="$DIR_HOME/common/function"

FILE_SETUP="$DIR_HOME/init_data/setup.sh"
FILE_INITDB="$DIR_HOME/init_data/init_db.sh"

FILE_CRT="$DIR_HOME/ssl_certificates.tar.gz"
FILE_INIT="$DIR_HOME/.bkallowinit"
SO_libaio="/lib64/libaio.so.1"

NGINX_LOGS="$DIR_HOME/common/nginx/logs"

PHP_EXE="$DIR_HOME/common/php/bin/php"

MYSQL_HOME="$DIR_HOME/common/mysql"
MYSQL_DATA="$MYSQL_HOME/data/"
MYSQL_BIN="$MYSQL_HOME/bin/mysql"
MYSOCK="$MYSQL_HOME/data/mysql.sock"

TOMCAT_DIR="$DIR_JOB/apache-tomcat-7.0.19"
TOMCAT_LOGS="$TOMCAT_DIR/logs"
TOMCAT_BIN="$TOMCAT_DIR/bin/catalina.sh"

JAVA_HOME="$DIR_HOME/common/java"
JAVA_BIN="$JAVA_HOME/bin"
PATH=$JAVA_BIN:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

LC_ALL=C
LANG=C

ACTION='@(start|stop|restart|status|summary|reload|report|init)'
MODULE='@(all|redis-server|nginx|mysqld|zk1|zk2|zk3|gsedba|gsetask|gsebtfilesserver|yydba|gsedata|gsecacheapiserver|gseagent|cmdb|job|-*||)'
GROUP='@(gse|zk)'

monit() {
local MONIT_DIR="$DIR_HOME/common/monit"
local MONIT_BIN="$MONIT_DIR/bin/monit"
local MONIT_RC="$MONIT_DIR/conf/monitrc"
local MONIT_EXE="$MONIT_BIN -c $MONIT_RC"

chmod 700 $MONIT_RC

case "$1" in
self_start)
log "Info: monit self_start..."
$MONIT_EXE &>/dev/null
wait_check "$MONIT_EXE summary"
log "Info: monit self_start, ok"
;;
self_stop)
$MONIT_EXE quit
;;
self_reload)
$MONIT_EXE reload
;;
self_restart)
monit self_stop
monit self_start
;;
wait_stop)
wait_check "$MONIT_EXE summary |grep -c monitored |grep -q 16"
;;
*)
[[ $1 == "start" ]] && [[ $2 == "all" ]] && monit self_start
$MONIT_EXE "$@"
[[ $1 == "start" ]] && [[ $2 == "all" ]] && writed_ip
echo $1 |grep -Eq 'start|stop|restart' && { sleep 3;monit summary; }
;;
esac
}

usage() {
cat <<EOF
Usage: $0 : <action> <module>
action的取值为:(start|stop|restart|status|summary|reload|report|init)时,需要第二个参数module
module的取值为:(all|redis-server|nginx|mysqld|zk1|zk2|zk3|gsedba|gsetask|gsebtfilesserver|yydba|gsedata|gsecacheapiserver|gseagent|cmdb|job)

查看所有的进程状态:$0 summary
EOF
exit 1
}

echo -en "Current Version: $VERSION_BK \n"

case "$1" in
init)
source $FILE_SETUP || { echo -en "Error: source $FILE_SETUP, failed\n";exit 1; }
monit self_start && monit unmonitor all
monit stop all && monit wait_stop
monit start mysqld
monit -g zk start
init_db
exit $?
;;
$ACTION)
: ;;
*)
usage
;;
esac

source $FILE_FUNC || log_exit "Error: source $FILE_FUNC, failed"

case "$2" in
$MODULE)
monit "$@"
;;
$GROUP)
monit -g $2 $1
;;
monit)
monit self_$1
;;
*)
usage
;;
esac

本文标题:蓝鲸进程管理脚本参考

文章作者:shuke

发布时间:2020年04月20日 - 15:04

最后更新:2020年04月20日 - 15:04

原始链接:https://shuke163.github.io/2020/04/20/%E8%93%9D%E9%B2%B8%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86%E8%84%9A%E6%9C%AC%E5%8F%82%E8%80%83/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

-------------本文结束感谢您的阅读-------------

本文标题:蓝鲸进程管理脚本参考

文章作者:shuke

发布时间:2020年04月20日 - 15:04

最后更新:2020年04月20日 - 15:04

原始链接:https://shuke163.github.io/2020/04/20/%E8%93%9D%E9%B2%B8%E8%BF%9B%E7%A8%8B%E7%AE%A1%E7%90%86%E8%84%9A%E6%9C%AC%E5%8F%82%E8%80%83/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%