Statistiques
| Révision :

root / bin / get-disk-info @ 49

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

1
#!/bin/bash
2
# $Id: get-disk-info 49 2013-10-10 08:59:11Z kreverch $
3

    
4
BINZFS="/sbin/zfs"
5
BINZPOOL="/sbin/zpool"
6

    
7
SMARTTOOL="/usr/sbin/smartctl"
8

    
9
function usage {
10
  echo "Syntax :"
11
  echo "$0 -d device_name"
12
}
13

    
14
function nointeractive {
15

    
16
FIRST_TEST=$($SMARTTOOL $DEVBYID)
17
if [ $? -eq 0 ]
18
then
19
   while read line
20
   do
21
    if [[ "$line" =~ ":" ]]
22
    then
23
       echo $line
24
    fi 
25

    
26
   done <<< "$($SMARTTOOL -i -H $DEVBYID)"
27
   DEVBYIDNOPART=$(echo $DEVBYID |sed -e "s/\/dev\/disk\/by-vdev\///g" |sed -e "s/-part1$//g")
28
  # echo "DEVBYIDNOPART= $DEVBYIDNOPART"
29
   if [[ "$DEVBYIDNOPART" == "" ]] || [[ "$DEVBYIDNOPART-part1" == "$DEVBYID" ]]
30
   then
31
        DEVBYIDNOPART=$(echo $DEVBYID |sed -e "s/\/dev\/disk\/by-id\///g" |sed -e "s/-part1$//g")
32
        echo "DEVBYIDNOPART= $DEVBYIDNOPART"
33
   fi
34
   echo "nameinzpool:$DEVBYIDNOPART"
35
   errorread=$($BINZPOOL status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f3)
36
   echo "errorread:$errorread"
37
   errorwrite=$($BINZPOOL status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f4)
38
   echo "errorwrite:$errorwrite"
39
   errorchecksum=$($BINZPOOL status |grep "$DEVBYIDNOPART"|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f5)
40
   echo "errorchecksum:$errorchecksum"
41
   exit 0
42
fi
43

    
44
if [[ -e /sbin/multipath ]] || [[ -e /usr/sbin/multipath ]] || [[ -e /usr/local/sbin/multipath ]]
45
then
46

    
47
    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
    if [ "$resultMulti" != ""  ]
49
    then
50
        while read liner
51
        do
52
          if [[ "$liner" =~ ":" ]]
53
          then
54
              echo $liner
55
          fi 
56
        done<<< "$($SMARTTOOL -i -H /dev/disk/by-id/scsi-$resultMulti)"
57
        DEVBYIDNOPART=$(echo $DEVBYID|cut -d "/" -f4)
58
        echo "nameinzpool:$DEVBYIDNOPART"
59
        errorread=$($BINZPOOL status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f3)
60
        echo "errorread:$errorread"
61
        errorwrite=$($BINZPOOL status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f4)
62
        echo "errorwrite:$errorwrite"
63
        errorchecksum=$($BINZPOOL status |grep "$DEVBYIDNOPART "|sed -e "s/\t//g" |sed -e "s/ \+/ /g" | sed -e "s/^ //g"|cut -d " " -f5)
64
        echo "errorchecksum:$errorchecksum"
65
        exit 0
66
    fi
67
fi
68

    
69
echo "no informations disk"
70
}
71

    
72
while getopts "d:h" OPTION
73
do
74
     case $OPTION in
75
         h)
76
             usage
77
             exit 1
78
             ;;
79
         d)
80
            DEVBYID=$OPTARG
81
            ;;
82
         *)
83
           usage
84
           exit 1
85
           ;;
86
     esac
87
done
88
if [[ -z $DEVBYID ]] 
89
then
90
     usage
91
     exit 1
92
fi
93

    
94
nointeractive
95