diff options
Diffstat (limited to 'plugins-scripts')
-rwxr-xr-x | plugins-scripts/check_oracle.sh | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/plugins-scripts/check_oracle.sh b/plugins-scripts/check_oracle.sh index 59981386..db824bef 100755 --- a/plugins-scripts/check_oracle.sh +++ b/plugins-scripts/check_oracle.sh | |||
@@ -47,7 +47,7 @@ print_help() { | |||
47 | echo "--cache" | 47 | echo "--cache" |
48 | echo " Check local database for library and buffer cache hit ratios" | 48 | echo " Check local database for library and buffer cache hit ratios" |
49 | echo " ---> Requires Oracle user/password and SID specified." | 49 | echo " ---> Requires Oracle user/password and SID specified." |
50 | echo " ---> Requires select on v_$sysstat and v_$librarycache" | 50 | echo " ---> Requires select on v_\$sysstat and v_\$librarycache" |
51 | echo "--tablespace" | 51 | echo "--tablespace" |
52 | echo " Check local database for tablespace capacity in ORACLE_SID" | 52 | echo " Check local database for tablespace capacity in ORACLE_SID" |
53 | echo " ---> Requires Oracle user/password specified." | 53 | echo " ---> Requires Oracle user/password specified." |
@@ -109,14 +109,14 @@ if [ -z "$ORACLE_HOME" ] ; then | |||
109 | for oratab in /var/opt/oracle/oratab /etc/oratab | 109 | for oratab in /var/opt/oracle/oratab /etc/oratab |
110 | do | 110 | do |
111 | [ ! -f $oratab ] && continue | 111 | [ ! -f $oratab ] && continue |
112 | ORACLE_HOME=`IFS=: | 112 | ORACLE_HOME=$(IFS=: |
113 | while read -r SID ORACLE_HOME junk; | 113 | while read -r SID ORACLE_HOME _; |
114 | do | 114 | do |
115 | if [ "$SID" = "$2" ] || [ "$SID" = "*" ] ; then | 115 | if [ "$SID" = "$2" ] || [ "$SID" = "*" ] ; then |
116 | echo "$ORACLE_HOME"; | 116 | echo "$ORACLE_HOME"; |
117 | exit; | 117 | exit; |
118 | fi; | 118 | fi; |
119 | done < $oratab` | 119 | done < $oratab) |
120 | [ -n "$ORACLE_HOME" ] && break | 120 | [ -n "$ORACLE_HOME" ] && break |
121 | done | 121 | done |
122 | fi | 122 | fi |
@@ -209,7 +209,7 @@ case "$cmd" in | |||
209 | echo "UNKNOWN - Warning level is less then Crit" | 209 | echo "UNKNOWN - Warning level is less then Crit" |
210 | exit "$STATE_UNKNOWN" | 210 | exit "$STATE_UNKNOWN" |
211 | fi | 211 | fi |
212 | result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF | 212 | result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF |
213 | set pagesize 0 | 213 | set pagesize 0 |
214 | set numf '9999999.99' | 214 | set numf '9999999.99' |
215 | select (1-(pr.value/(dbg.value+cg.value)))*100 | 215 | select (1-(pr.value/(dbg.value+cg.value)))*100 |
@@ -217,7 +217,8 @@ from v\\$sysstat pr, v\\$sysstat dbg, v\\$sysstat cg | |||
217 | where pr.name='physical reads' | 217 | where pr.name='physical reads' |
218 | and dbg.name='db block gets' | 218 | and dbg.name='db block gets' |
219 | and cg.name='consistent gets'; | 219 | and cg.name='consistent gets'; |
220 | EOF` | 220 | EOF |
221 | ) | ||
221 | 222 | ||
222 | if echo "$result" | grep -q 'ORA-' ; then | 223 | if echo "$result" | grep -q 'ORA-' ; then |
223 | error=$(echo "$result" | grep "ORA-" | head -1) | 224 | error=$(echo "$result" | grep "ORA-" | head -1) |
@@ -227,12 +228,13 @@ EOF` | |||
227 | 228 | ||
228 | buf_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') | 229 | buf_hr=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print int($1)}') |
229 | buf_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') | 230 | buf_hrx=$(echo "$result" | awk '/^[0-9\. \t]+$/ {print $1}') |
230 | result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF | 231 | result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF |
231 | set pagesize 0 | 232 | set pagesize 0 |
232 | set numf '9999999.99' | 233 | set numf '9999999.99' |
233 | select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 | 234 | select sum(lc.pins)/(sum(lc.pins)+sum(lc.reloads))*100 |
234 | from v\\$librarycache lc; | 235 | from v\\$librarycache lc; |
235 | EOF` | 236 | EOF |
237 | ) | ||
236 | 238 | ||
237 | if echo "$result" | grep -q 'ORA-' ; then | 239 | if echo "$result" | grep -q 'ORA-' ; then |
238 | error=$(echo "$result" | grep "ORA-" | head -1) | 240 | error=$(echo "$result" | grep "ORA-" | head -1) |
@@ -260,7 +262,7 @@ EOF` | |||
260 | echo "UNKNOWN - Warning level is more then Crit" | 262 | echo "UNKNOWN - Warning level is more then Crit" |
261 | exit "$STATE_UNKNOWN" | 263 | exit "$STATE_UNKNOWN" |
262 | fi | 264 | fi |
263 | result=`sqlplus -s "${3}"/"${4}"@"${2}" << EOF | 265 | result=$(sqlplus -s "${3}"/"${4}"@"${2}" << EOF |
264 | set pagesize 0 | 266 | set pagesize 0 |
265 | set numf '9999999.99' | 267 | set numf '9999999.99' |
266 | select NVL(b.free,0.0),a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc | 268 | select NVL(b.free,0.0),a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc |
@@ -271,7 +273,8 @@ LEFT OUTER JOIN | |||
271 | ( select tablespace_name,sum(bytes)/1024/1024 free | 273 | ( select tablespace_name,sum(bytes)/1024/1024 free |
272 | from dba_free_space group by tablespace_name) B | 274 | from dba_free_space group by tablespace_name) B |
273 | ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; | 275 | ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}'; |
274 | EOF` | 276 | EOF |
277 | ) | ||
275 | 278 | ||
276 | if echo "$result" | grep -q 'ORA-' ; then | 279 | if echo "$result" | grep -q 'ORA-' ; then |
277 | error=$(echo "$result" | grep "ORA-" | head -1) | 280 | error=$(echo "$result" | grep "ORA-" | head -1) |