File: evt.sh

package info (click to toggle)
ipmiutil 3.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,436 kB
  • ctags: 11,679
  • sloc: ansic: 71,653; sh: 14,503; cpp: 2,242; makefile: 502
file content (45 lines) | stat: -rwxr-xr-x 1,284 bytes parent folder | download | duplicates (5)
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
#!/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