|
@@ -0,0 +1,91 @@
|
|
|
+#!/bin/bash
|
|
|
+#
|
|
|
+#/*
|
|
|
+# * Licensed to the Apache Software Foundation (ASF) under one
|
|
|
+# * or more contributor license agreements. See the NOTICE file
|
|
|
+# * distributed with this work for additional information
|
|
|
+# * regarding copyright ownership. The ASF licenses this file
|
|
|
+# * to you under the Apache License, Version 2.0 (the
|
|
|
+# * "License"); you may not use this file except in compliance
|
|
|
+# * with the License. You may obtain a copy of the License at
|
|
|
+# *
|
|
|
+# * http://www.apache.org/licenses/LICENSE-2.0
|
|
|
+# *
|
|
|
+# * Unless required by applicable law or agreed to in writing, software
|
|
|
+# * distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
+# * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
+# * See the License for the specific language governing permissions and
|
|
|
+# * limitations under the License.
|
|
|
+# */
|
|
|
+
|
|
|
+err=0;
|
|
|
+
|
|
|
+function check_disks {
|
|
|
+
|
|
|
+ for m in `awk '$3~/ext3/ {printf" %s ",$2}' /etc/fstab` ; do
|
|
|
+ fsdev=""
|
|
|
+ fsdev=`awk -v m=$m '$2==m {print $1}' /proc/mounts`;
|
|
|
+ if [ -z "$fsdev" -a "$m" != "/mnt" ] ; then
|
|
|
+ msg_="$msg_ $m(u)"
|
|
|
+ else
|
|
|
+ msg_="$msg_`awk -v m=$m '$2==m { if ( $4 ~ /^ro,/ ) {printf"%s(ro)",$2 } ; }' /proc/mounts`"
|
|
|
+ fi
|
|
|
+ done
|
|
|
+
|
|
|
+ if [ -z "$msg_" ] ; then
|
|
|
+ echo "disks ok" ; exit 0
|
|
|
+ else
|
|
|
+ echo "$msg_" ; exit 2
|
|
|
+ fi
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+function check_link {
|
|
|
+ snmp=/usr/bin/snmpwalk
|
|
|
+ if [ -e $snmp ] ; then
|
|
|
+ $snmp -t 5 -Oe -Oq -Os -v 1 -c public localhost if | \
|
|
|
+ awk ' {
|
|
|
+ split($1,a,".") ;
|
|
|
+ if ( a[1] == "ifIndex" ) { ifIndex[a[2]] = $2 }
|
|
|
+ if ( a[1] == "ifDescr" ) { ifDescr[a[2]] = $2 }
|
|
|
+ if ( a[1] == "ifType" ) { ifType[a[2]] = $2 }
|
|
|
+ if ( a[1] == "ifSpeed" ) { ifSpeed[a[2]] = $2 }
|
|
|
+ if ( a[1] == "ifAdminStatus" ) { ifAdminStatus[a[2]] = $2 }
|
|
|
+ if ( a[1] == "ifOperStatus" ) { ifOperStatus[a[2]] = $2 }
|
|
|
+ }
|
|
|
+ END {
|
|
|
+ up=0;
|
|
|
+ for (i in ifIndex ) {
|
|
|
+ if ( ifType[i] == 6 && ifAdminStatus[i] == 1 && ifOperStatus[i] == 1 && ifSpeed[i] == 1000000000 ) {
|
|
|
+ up=i;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ( up == 0 ) { print "check link" ; exit 2 }
|
|
|
+ else { print ifDescr[up],"ok" }
|
|
|
+ }'
|
|
|
+ exit $? ;
|
|
|
+ fi
|
|
|
+}
|
|
|
+
|
|
|
+# Run all checks
|
|
|
+# Disabled 'check_link' for now...
|
|
|
+for check in disks ; do
|
|
|
+ msg=`check_${check}` ;
|
|
|
+ if [ $? -eq 0 ] ; then
|
|
|
+ ok_msg="$ok_msg$msg,"
|
|
|
+ else
|
|
|
+ err_msg="$err_msg$msg,"
|
|
|
+ fi
|
|
|
+done
|
|
|
+
|
|
|
+if [ ! -z "$err_msg" ] ; then
|
|
|
+ echo -n "ERROR $err_msg "
|
|
|
+fi
|
|
|
+if [ ! -z "$ok_msg" ] ; then
|
|
|
+ echo -n "OK: $ok_msg"
|
|
|
+fi
|
|
|
+
|
|
|
+echo
|
|
|
+
|
|
|
+# Success!
|
|
|
+exit 0
|