Statistiques
| Révision :

root / bin / get-disk-info @ 39

Historique | Voir | Annoter | Télécharger (2,66 ko)

1 1 kreverch
#!/bin/bash
2 39 ltaulell
# $Id$
3 39 ltaulell
4 1 kreverch
SMARTTOOL="/usr/sbin/smartctl"
5 1 kreverch
6 1 kreverch
function usage {
7 1 kreverch
  echo "Syntax :"
8 1 kreverch
  echo "$0 -d device_name"
9 1 kreverch
}
10 1 kreverch
11 1 kreverch
function nointeractive {
12 1 kreverch
13 1 kreverch
FIRST_TEST=$($SMARTTOOL $DEVBYID)
14 1 kreverch
if [ $? -eq 0 ]
15 1 kreverch
then
16 1 kreverch
   while read line
17 1 kreverch
   do
18 1 kreverch
    if [[ "$line" =~ ":" ]]
19 1 kreverch
    then
20 1 kreverch
       echo $line
21 1 kreverch
    fi
22 1 kreverch
23 1 kreverch
   done <<< "$($SMARTTOOL -i -H $DEVBYID)"
24 19 ltaulell
   DEVBYIDNOPART=$(echo $DEVBYID |sed -e "s/\/dev\/disk\/by-vdev\///g" |sed -e "s/-part1$//g")
25 35 kreverch
  # echo "DEVBYIDNOPART= $DEVBYIDNOPART"
26 35 kreverch
   if [[ "$DEVBYIDNOPART" == "" ]] || [[ "$DEVBYIDNOPART-part1" == "$DEVBYID" ]]
27 19 ltaulell
   then
28 19 ltaulell
        DEVBYIDNOPART=$(echo $DEVBYID |sed -e "s/\/dev\/disk\/by-id\///g" |sed -e "s/-part1$//g")
29 35 kreverch
        echo "DEVBYIDNOPART= $DEVBYIDNOPART"
30 19 ltaulell
   fi
31 1 kreverch
   echo "nameinzpool:$DEVBYIDNOPART"
32 1 kreverch
   errorread=$(/sbin/zpool status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f3)
33 1 kreverch
   echo "errorread:$errorread"
34 1 kreverch
   errorwrite=$(/sbin/zpool status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f4)
35 1 kreverch
   echo "errorwrite:$errorwrite"
36 1 kreverch
   errorchecksum=$(/sbin/zpool status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f5)
37 1 kreverch
   echo "errorchecksum:$errorchecksum"
38 1 kreverch
   exit 0
39 1 kreverch
fi
40 1 kreverch
41 1 kreverch
if [[ -e /sbin/multipath ]] || [[ -e /usr/sbin/multipath ]] || [[ -e /usr/local/sbin/multipath ]]
42 1 kreverch
then
43 1 kreverch
44 22 kreverch
    resultMulti=$(multipath -v 2 -l $DEVBYID |sed -e 's/(/disk_id=/g' |sed -e 's/)//g'|cut -d " " -f2 |grep disk_id|cut -d '=' -f2)
45 1 kreverch
    if [ "$resultMulti" != ""  ]
46 1 kreverch
    then
47 1 kreverch
        while read liner
48 1 kreverch
        do
49 1 kreverch
          if [[ "$liner" =~ ":" ]]
50 1 kreverch
          then
51 1 kreverch
              echo $liner
52 1 kreverch
          fi
53 1 kreverch
        done<<< "$($SMARTTOOL -i -H /dev/disk/by-id/scsi-$resultMulti)"
54 1 kreverch
        DEVBYIDNOPART=$(echo $DEVBYID|cut -d "/" -f4)
55 1 kreverch
        echo "nameinzpool:$DEVBYIDNOPART"
56 1 kreverch
        errorread=$(/sbin/zpool status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f3)
57 1 kreverch
        echo "errorread:$errorread"
58 1 kreverch
        errorwrite=$(/sbin/zpool status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f4)
59 1 kreverch
        echo "errorwrite:$errorwrite"
60 1 kreverch
        errorchecksum=$(/sbin/zpool status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f5)
61 1 kreverch
        echo "errorchecksum:$errorchecksum"
62 1 kreverch
        exit 0
63 1 kreverch
    fi
64 1 kreverch
fi
65 1 kreverch
66 1 kreverch
echo "no informations disk"
67 1 kreverch
}
68 1 kreverch
69 1 kreverch
while getopts "d:h" OPTION
70 1 kreverch
do
71 1 kreverch
     case $OPTION in
72 1 kreverch
         h)
73 1 kreverch
             usage
74 1 kreverch
             exit 1
75 1 kreverch
             ;;
76 1 kreverch
         d)
77 1 kreverch
            DEVBYID=$OPTARG
78 1 kreverch
            ;;
79 1 kreverch
         *)
80 1 kreverch
           usage
81 1 kreverch
           exit 1
82 1 kreverch
           ;;
83 1 kreverch
     esac
84 1 kreverch
done
85 1 kreverch
if [[ -z $DEVBYID ]]
86 1 kreverch
then
87 1 kreverch
     usage
88 1 kreverch
     exit 1
89 1 kreverch
fi
90 1 kreverch
91 1 kreverch
nointeractive