[Nagiosplug-devel] Patch for check_oracle.sh

Florian Gleixner flo at bier.homeip.net
Thu Aug 17 11:09:08 CEST 2006


Hi,

check_oracle gives

/usr/local/nagios/libexec/check_oracle: [: : integer expression expected
/usr/local/nagios/libexec/check_oracle: [: : integer expression expected
/usr/local/nagios/libexec/check_oracle: [: : integer expression expected

if the table dba_free_space does not contain any free segment -> the
tablespace is 100% full. I changed the query so that it returns 100% in
this condition.

Here's the patch:

diff -ud check_oracle.sh check_oracle
--- check_oracle_v14.sh 2006-08-17 10:57:29.605426000 +0200
+++ check_oracle        2006-08-17 10:59:16.006634000 +0200
@@ -244,13 +244,14 @@
     result=`sqlplus -s ${3}/${4}@${2} << EOF
 set pagesize 0
 set numf '9999999.99'
-select b.free,a.total,100 - trunc(b.free/a.total * 1000) / 10 prc
+select b.free,a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc
 from (
 select tablespace_name,sum(bytes)/1024/1024 total
-from dba_data_files group by tablespace_name) A,
+from dba_data_files group by tablespace_name) A
+LEFT OUTER JOIN
 ( select tablespace_name,sum(bytes)/1024/1024 free
 from dba_free_space group by tablespace_name) B
-where a.tablespace_name=b.tablespace_name and a.tablespace_name='${5}';
+ON a.tablespace_name=b.tablespace_name WHERE a.tablespace_name='${5}';
 EOF`

     if [ -n "`echo $result | grep ORA-`" ] ; then



Florian Gleixner




More information about the Devel mailing list