Statistiques
| Révision :

root / bin / get-disk-info @ 62

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

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