Statistiques
| Révision :

root / bin / del-iscsi-volume @ 24

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

1
#!/bin/bash
2

    
3

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

    
11
}
12

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

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

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

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

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

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

    
83

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

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

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

    
96
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
97
   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"
98
fi
99

    
100

    
101
}
102

    
103

    
104
function interactive {
105

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

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

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

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

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

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

    
142

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

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

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

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

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

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

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

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

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

    
221
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
222
   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"
223
fi
224
echo "*** FIN ***"
225
}
226

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

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