generate full report by default
[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)'
8 test ! -z "$1" && pattern=$*
9
10 megaraid() {
11         drive=$1
12         nr=0
13         while [ $nr -lt 8 ] ; do
14                 test ! -z "$SMART" && smartctl -d megaraid,$nr $SMART /dev/$drive > /dev/shm/smart.$drive.$nr-out
15                 smartctl -d megaraid,$nr -a /dev/$drive > /dev/shm/smart.$drive.$nr
16                 nr=`expr $nr + 1`
17         done
18 }
19
20 test -r /proc/mdstat && cat /proc/mdstat
21
22 lsblk --noheadings --scsi -o name | while read drive ; do
23         test ! -z "$SMART" && smartctl $SMART /dev/$drive > /dev/shm/smart.$drive-out
24         smartctl -a /dev/$drive > /dev/shm/smart.$drive
25         if ! grep -q '^# 1' /dev/shm/smart.$drive ; then
26                 megaraid $drive
27         fi
28 done
29
30 egrep "$pattern" /dev/shm/smart.* | grep -v -- '-  *0$' | cut -d. -f2- | sed -e 's/:/\t/'