Statistiques
| Révision :

root / bin / get-disk-info @ 49

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

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