Statistiques
| Révision :

root / bin / del-iscsi-volume @ 39

Historique | Voir | Annoter | Télécharger (5,71 ko)

1
#!/bin/bash
2
# $Id: del-iscsi-volume 39 2013-10-08 12:46:21Z ltaulell $
3

    
4

    
5
function usage {
6
  echo "Usage :" 1>&2
7
  echo "$0 [OPTIONS]" 1>&2
8
  echo " -h display this message" 1>&2
9
  echo " -i interactive mode" 1>&2
10
  echo " -T Specify the TID" 1>&2
11

    
12
}
13

    
14
function nointeractive {
15
if [ "$TID2DEL" == "" ]
16
then
17
   echo "Please specify a TID ISCSI" 1>&2
18
   exit 1
19
fi
20
TARGET=$(cat /proc/net/iet/session |grep -i tid:$TID2DEL |cut -d ":" -f3)
21

    
22
TID_FIND=1
23
TID_ISACTIVE=1
24
for line in $(cat /proc/net/iet/session)
25
do
26
  if [ $TID_FIND -eq 0 ]
27
  then
28
     CHECK_STATE=$(echo $line |awk '{ if ( /state:active/ ){ print 0 }else{ print $1 $line} }')
29
     if [ "$CHECK_STATE" = "0" ]
30
     then
31
         TID_ISACTIVE=0
32
     fi
33

    
34
  fi
35
  if [ $TID_ISACTIVE -eq 0 ]
36
  then
37
     echo "iscsi volume in use, please disconnect all clients " 1>&2
38
     exit 1
39
  fi
40
  TID_LISTED=$(echo $line |awk '(/tid:/) { print $1 }')
41
  if [ "$TID_LISTED" != "" ]
42
  then
43
     if [ "tid:$TID2DEL" = "$TID_LISTED" ]
44
     then
45
        TID_FIND=0
46
     else
47
       TID_FIND=1
48
     fi
49
 fi
50
done
51

    
52
ietadm --op delete --tid=$TID2DEL
53
if [ $? -eq 0 ]
54
then
55
   echo "*** La suppression via la commande ietadm s'est termine correctement"
56
   echo ""
57
   echo "*** Vérification et suppression du volume dans le fichier /etc/iet/ietd.conf ..."
58

    
59
   COPY_LINE=0
60
   >/tmp/.buffer_ietd.conf
61
   while read line
62
   do
63
      echo $line |grep -i "^Target"
64
      if [ $? -eq 0 ]
65
      then
66
         COPY_LINE=0
67
      fi
68
      echo $line |grep -i "^Target $TARGET"
69
      if [ $? -eq 0 ]
70
      then
71
         COPY_LINE=1
72
      fi
73
      if [ $COPY_LINE -eq 0 ]
74
      then
75
         echo $line >> /tmp/.buffer_ietd.conf
76
      fi
77

    
78
    done < "/etc/iet/ietd.conf"
79
    echo "*** Sauvegarde du fichier /etc/iet/ietd.conf ..."
80
    TODAY=$(date +%Y%m%d%H%M%S)
81
    cp /etc/iet/ietd.conf /etc/iet/ietd.conf.$TODAY
82
    cp /tmp/.buffer_ietd.conf /etc/iet/ietd.conf
83

    
84

    
85
   echo ""
86
   echo "*** Vérification /proc/net/iet/volume :"
87
   cat /proc/net/iet/volume
88

    
89
   echo ""
90
   echo "*** Verification repertoire /etc/iet :"
91
   ls -ltr /etc/iet
92

    
93
   echo ""
94
   echo "*** Operation de suppression [OK] ..."
95
else
96

    
97
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
98
   echo "*** Veuillez vérifier que le volume n'est pas en cours d'uilisation (cat /proc/net/iet/session) sinon contacter l'admin en charge de ce serv ce"
99
fi
100

    
101

    
102
}
103

    
104

    
105
function interactive {
106

    
107
echo "*** Choix du volume ISCSI a supprimer ***"
108
cat /proc/net/iet/session
109

    
110
echo "*** Saisir le TID du volume iscsi a supprimer : ***" 
111
while read inputline
112
do
113
   TID2DEL=$inputline 
114
   echo "*** Etes-vous sur du nom : $inputline ? (y/n) ***"
115
   
116
   while read inputConfirm
117
   do
118
      if [ "$inputConfirm" = "y" ]||[ "$inputConfirm" = "n" ]
119
      then
120
         break
121
      fi
122
      echo "*** Etes-vous certain de vouloir supprimer le TID : $inputline ? (y/n) ***" 
123
   done
124

    
125
   if [ "$inputConfirm" = "y" ]
126
   then
127
      break
128
   fi
129
   if [ "$inputConfirm" != "y" ]
130
   then
131
      echo "*** Saisir le TID du volume iscsi a supprimer : ***" 
132
   fi
133
done
134

    
135
echo "**** Recuperation de la propriété Target (identifiant utilise dans le fichier /etc/iet/ietd.conf) ..."
136
TARGET=$(cat /proc/net/iet/session |grep -i tid:$TID2DEL |cut -d ":" -f3)
137

    
138
echo "Nom de la target a rechercher dans /etc/iet/ietd.conf : $TARGET"
139

    
140
echo ""
141
echo "**** Check si le volume est en cours d'utilisation ..."
142

    
143

    
144
TID_FIND=1
145
TID_ISACTIVE=1
146
for line in $(cat /proc/net/iet/session)
147
do
148
  if [ $TID_FIND -eq 0 ]
149
  then
150
     CHECK_STATE=$(echo $line |awk '{ if ( /state:active/ ){ print 0 }else{ print $1 $line} }')
151
     if [ "$CHECK_STATE" = "0" ]
152
     then
153
         TID_ISACTIVE=0
154
     fi
155

    
156
  fi
157
  if [ $TID_ISACTIVE -eq 0 ]
158
  then
159
     echo "Le volume isci est en cours d'utilisation, suppression impossible"
160
     exit 1
161
  fi
162
  TID_LISTED=$(echo $line |awk '(/tid:/) { print $1 }')
163
  if [ "$TID_LISTED" != "" ]
164
  then
165
     if [ "tid:$TID2DEL" = "$TID_LISTED" ]
166
     then
167
        TID_FIND=0 
168
     else
169
       TID_FIND=1 
170
     fi
171
 fi
172
done
173

    
174
echo "*** Debut de la procédure de suppression ..."
175
echo ""
176

    
177
ietadm --op delete --tid=$TID2DEL
178
if [ $? -eq 0 ]
179
then
180
   echo "*** La suppression via la commande ietadm s'est termine correctement"
181
   echo ""
182
   echo "*** Vérification et suppression du volume dans le fichier /etc/iet/ietd.conf ..."
183

    
184
   COPY_LINE=0
185
   >/tmp/.buffer_ietd.conf
186
   while read line
187
   do
188
      echo $line |grep -i "^Target"
189
      if [ $? -eq 0 ]
190
      then
191
         COPY_LINE=0
192
      fi
193
      echo $line |grep -i "^Target $TARGET" 
194
      if [ $? -eq 0 ]
195
      then
196
         COPY_LINE=1
197
      fi
198
      if [ $COPY_LINE -eq 0 ]
199
      then
200
         echo $line >> /tmp/.buffer_ietd.conf
201
      fi 
202

    
203
    done < "/etc/iet/ietd.conf"
204
    echo "*** Sauvegarde du fichier /etc/iet/ietd.conf ..."
205
    TODAY=$(date +%Y%m%d%H%M%S)
206
    cp /etc/iet/ietd.conf /etc/iet/ietd.conf.$TODAY
207
    cp /tmp/.buffer_ietd.conf /etc/iet/ietd.conf
208
       
209

    
210
   echo ""
211
   echo "*** Vérification /proc/net/iet/volume :"
212
   cat /proc/net/iet/volume
213

    
214
   echo ""
215
   echo "*** Verification repertoire /etc/iet :"
216
   ls -ltr /etc/iet
217

    
218
   echo ""
219
   echo "*** Operation de suppression [OK] ..."
220
else
221

    
222
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
223
   echo "*** Veuillez vérifier que le volume n'est pas en cours d'uilisation (cat /proc/net/iet/session) sinon contacter l'admin en charge de ce service"
224
fi
225
echo "*** FIN ***"
226
}
227

    
228
while getopts "iT:h" OPTION
229
do
230
     case $OPTION in
231
         h)
232
             usage
233
             exit 1
234
             ;;
235
         i)
236
             interactive
237
             ;;
238
         T)
239
             TID2DEL=$OPTARG
240
             ;;
241
         *)
242
             usage
243
             exit 1
244
             ;;
245
     esac
246
done
247

    
248
if [ ! -d "/proc/net/iet" ]
249
then
250
  echo "Please, check if ietd is running ..." 1>&2
251
  exit 1
252
fi
253
if [ -z $TID2DEL ]
254
then
255
   usage
256
   exit 1
257
fi
258
nointeractive
259