forked from freddenis/dev
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgen-services.sh
62 lines (55 loc) · 1.46 KB
/
gen-services.sh
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
#!/bin/bash
#
#
RAC_STATUS="rac-status.sh"
if [[ ! -f ${RAC_STATUS} ]]
then
cat << !
Cannot find ${RAC_STATUS}, please get it from http://bit.ly/2XEXa6j (doc is http://bit.ly/2MFkzDw)
!
exit 666
fi
# Options
while getopts "n:w:h" OPT; do
case ${OPT} in
n) N=${OPTARG} ;;
w) WHAT=${OPTARG} ;;
h) usage ;;
\?) echo "Invalid option: -$OPTARG" >&2; usage ;;
esac
done
if [[ -n ${N} ]]
then
NODE=$N
else
NODE=`hostname -s`
fi
NODE_ID=`echo "${NODE: -1}"`
if [[ -z ${WHAT} ]]
then
WHAT="disable"
fi
./${RAC_STATUS} -n -s -u | sed s'/ *//g' |\
awk -F "|" -v NODE="$NODE" -v NODE_ID="$NODE_ID" -v WHAT="$WHAT" '\
{ if ($0 ~ /----------------/)
{ print "### " WHAT " ###" ;
while (getline)
{ COL=NODE_ID+2 ;
if ($1 != "")
{
DB=$1 ;
}
if ($COL == "Online")
{
print "srvctl "WHAT" service -d " DB " -s " $2 " -n " NODE
}
if ($0 ~ /----------------/)
{ printf("\n") ;
break ;
}
}
}
}'
#*********************************************************************************************************
# E N D O F S O U R C E
#*********************************************************************************************************