report test remaining if self-test is running
[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'
8 test ! -z "$1" && pattern=$1
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 grep "$pattern" /dev/shm/smart.*                | cut -d. -f2- | sed -e 's/:/\t/'
31
32 grep 'test remaining' /dev/shm/smart.*          | sort | cut -d. -f2- | sed -e 's/:/\t/'