added one-liner for easy copy/paste
[gnt-info] / smart-megaraid.sh
1 #!/bin/sh
2
3 # Usage:
4 # smart-megaraid.sh '^# 1'              # default without args
5 # SMART="-t long" smart-megaraid.sh     # execute smart command
6
7 pattern='(^# [1-2]|test remaining|Hours|Error|Serial|Model|Firmware|Load)'
8 test ! -z "$1" && pattern=$*
9
10 did_megaraid=0
11
12 megaraid() {
13         test $did_megaraid -eq 1 && return
14         drive=$1
15         nr=0
16         while [ $nr -lt 8 ] ; do
17                 test ! -z "$SMART" && smartctl -d megaraid,$nr $SMART /dev/$drive > /dev/shm/smart.$drive.$nr-out
18                 smartctl -d megaraid,$nr -a /dev/$drive > /dev/shm/smart.$drive.$nr
19                 nr=`expr $nr + 1`
20         done
21         did_megaraid=1
22 }
23
24 test -r /proc/mdstat && cat /proc/mdstat
25
26 lsblk --noheadings --scsi -o name | while read drive ; do
27         test ! -z "$SMART" && smartctl $SMART /dev/$drive > /dev/shm/smart.$drive-out
28         smartctl -a /dev/$drive > /dev/shm/smart.$drive
29         if egrep -q '(PERC|MegaRaid|DELL)' /dev/shm/smart.$drive ; then
30                 megaraid $drive
31         fi
32 done
33
34 egrep "$pattern" /dev/shm/smart.* | grep -v -- '-  *0$' | cut -d. -f2- | sed -e 's/:/\t/'