diff options
Diffstat (limited to 'scripts/evt.sh')
-rwxr-xr-x | scripts/evt.sh | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/scripts/evt.sh b/scripts/evt.sh new file mode 100755 index 0000000..b600481 --- /dev/null +++ b/scripts/evt.sh @@ -0,0 +1,45 @@ +#!/bin/sh +# evt.sh +# A sample script to use via ipmiutil getevt -s -r /path/evt.sh +# +evtdesc=$1 +log=/var/log/ipmi_evt.log + +echo "$0 got IPMI event `date`" >>$log +echo "$evtdesc" >>$log +# Check SEVerity for anything other than INFormational. +echo $evtdesc |grep -v INF >/dev/null 2>&1 +if [ $? -eq 0 ]; then + # Could take various specific actions here, like snmptrap, or other alert. + echo "*** Non-INF IPMI Event requiring attention ***" >>$log + snmpdest=`grep trapsink /etc/snmp/snmpd.conf 2>/dev/null |head -n1` + if [ "x$snmpdest" = "x" ]; then + echo "No SNMP trapsink destination" >>$log + else + snmpipadr=`echo $snmpdest |awk '{ print $2 }'` + community=`echo $snmpdest |awk '{ print $3 }'` + snmphost=`uname -n` + uptim=`cat /proc/uptime |cut -f1 -d' '` + trapoid="enterprises.1" + vboid1=".enterprises.1.1" #trapString + vboid2=".enterprises.1.2" #trapSeverity + sev=`echo $evtdesc |cut -c24-26` + case $sev in + MIN) + tsev=2 + ;; + MAJ) + tsev=3 + ;; + CRT) + tsev=4 + ;; + *) + tsev=1 + ;; + esac + snmptrap -v 1 -c $community $snmpipadr $trapoid $snmphost 6 0 $uptim $vboid1 s "$evtdesc" $vboid2 i $tsev + echo "Send SNMP trap to $snmpipadr for IPMI $sev event, status=$?" >>$log + fi +fi + |