Statistiques
| Révision :

root / bin / del-iscsi-volume @ 27

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

1 1 kreverch
#!/bin/bash
2 1 kreverch
3 1 kreverch
4 1 kreverch
function usage {
5 1 kreverch
  echo "Usage :" 1>&2
6 1 kreverch
  echo "$0 [OPTIONS]" 1>&2
7 1 kreverch
  echo " -h display this message" 1>&2
8 1 kreverch
  echo " -i interactive mode" 1>&2
9 1 kreverch
  echo " -T Specify the TID" 1>&2
10 1 kreverch
11 1 kreverch
}
12 1 kreverch
13 1 kreverch
function nointeractive {
14 1 kreverch
if [ "$TID2DEL" == "" ]
15 1 kreverch
then
16 1 kreverch
   echo "Please specify a TID ISCSI" 1>&2
17 1 kreverch
   exit 1
18 1 kreverch
fi
19 1 kreverch
TARGET=$(cat /proc/net/iet/session |grep -i tid:$TID2DEL |cut -d ":" -f3)
20 1 kreverch
21 1 kreverch
TID_FIND=1
22 1 kreverch
TID_ISACTIVE=1
23 1 kreverch
for line in $(cat /proc/net/iet/session)
24 1 kreverch
do
25 1 kreverch
  if [ $TID_FIND -eq 0 ]
26 1 kreverch
  then
27 1 kreverch
     CHECK_STATE=$(echo $line |awk '{ if ( /state:active/ ){ print 0 }else{ print $1 $line} }')
28 1 kreverch
     if [ "$CHECK_STATE" = "0" ]
29 1 kreverch
     then
30 1 kreverch
         TID_ISACTIVE=0
31 1 kreverch
     fi
32 1 kreverch
33 1 kreverch
  fi
34 1 kreverch
  if [ $TID_ISACTIVE -eq 0 ]
35 1 kreverch
  then
36 1 kreverch
     echo "iscsi volume in use, please disconnect all clients " 1>&2
37 1 kreverch
     exit 1
38 1 kreverch
  fi
39 1 kreverch
  TID_LISTED=$(echo $line |awk '(/tid:/) { print $1 }')
40 1 kreverch
  if [ "$TID_LISTED" != "" ]
41 1 kreverch
  then
42 1 kreverch
     if [ "tid:$TID2DEL" = "$TID_LISTED" ]
43 1 kreverch
     then
44 1 kreverch
        TID_FIND=0
45 1 kreverch
     else
46 1 kreverch
       TID_FIND=1
47 1 kreverch
     fi
48 1 kreverch
 fi
49 1 kreverch
done
50 1 kreverch
51 1 kreverch
ietadm --op delete --tid=$TID2DEL
52 1 kreverch
if [ $? -eq 0 ]
53 1 kreverch
then
54 1 kreverch
   echo "*** La suppression via la commande ietadm s'est termine correctement"
55 1 kreverch
   echo ""
56 1 kreverch
   echo "*** Vérification et suppression du volume dans le fichier /etc/iet/ietd.conf ..."
57 1 kreverch
58 1 kreverch
   COPY_LINE=0
59 1 kreverch
   >/tmp/.buffer_ietd.conf
60 1 kreverch
   while read line
61 1 kreverch
   do
62 1 kreverch
      echo $line |grep -i "^Target"
63 1 kreverch
      if [ $? -eq 0 ]
64 1 kreverch
      then
65 1 kreverch
         COPY_LINE=0
66 1 kreverch
      fi
67 1 kreverch
      echo $line |grep -i "^Target $TARGET"
68 1 kreverch
      if [ $? -eq 0 ]
69 1 kreverch
      then
70 1 kreverch
         COPY_LINE=1
71 1 kreverch
      fi
72 1 kreverch
      if [ $COPY_LINE -eq 0 ]
73 1 kreverch
      then
74 1 kreverch
         echo $line >> /tmp/.buffer_ietd.conf
75 1 kreverch
      fi
76 1 kreverch
77 1 kreverch
    done < "/etc/iet/ietd.conf"
78 1 kreverch
    echo "*** Sauvegarde du fichier /etc/iet/ietd.conf ..."
79 1 kreverch
    TODAY=$(date +%Y%m%d%H%M%S)
80 1 kreverch
    cp /etc/iet/ietd.conf /etc/iet/ietd.conf.$TODAY
81 1 kreverch
    cp /tmp/.buffer_ietd.conf /etc/iet/ietd.conf
82 1 kreverch
83 1 kreverch
84 1 kreverch
   echo ""
85 1 kreverch
   echo "*** Vérification /proc/net/iet/volume :"
86 1 kreverch
   cat /proc/net/iet/volume
87 1 kreverch
88 1 kreverch
   echo ""
89 1 kreverch
   echo "*** Verification repertoire /etc/iet :"
90 1 kreverch
   ls -ltr /etc/iet
91 1 kreverch
92 1 kreverch
   echo ""
93 1 kreverch
   echo "*** Operation de suppression [OK] ..."
94 1 kreverch
else
95 1 kreverch
96 1 kreverch
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
97 1 kreverch
   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 1 kreverch
fi
99 1 kreverch
100 1 kreverch
101 1 kreverch
}
102 1 kreverch
103 1 kreverch
104 1 kreverch
function interactive {
105 1 kreverch
106 1 kreverch
echo "*** Choix du volume ISCSI a supprimer ***"
107 1 kreverch
cat /proc/net/iet/session
108 1 kreverch
109 1 kreverch
echo "*** Saisir le TID du volume iscsi a supprimer : ***"
110 1 kreverch
while read inputline
111 1 kreverch
do
112 1 kreverch
   TID2DEL=$inputline
113 1 kreverch
   echo "*** Etes-vous sur du nom : $inputline ? (y/n) ***"
114 1 kreverch
115 1 kreverch
   while read inputConfirm
116 1 kreverch
   do
117 1 kreverch
      if [ "$inputConfirm" = "y" ]||[ "$inputConfirm" = "n" ]
118 1 kreverch
      then
119 1 kreverch
         break
120 1 kreverch
      fi
121 1 kreverch
      echo "*** Etes-vous certain de vouloir supprimer le TID : $inputline ? (y/n) ***"
122 1 kreverch
   done
123 1 kreverch
124 1 kreverch
   if [ "$inputConfirm" = "y" ]
125 1 kreverch
   then
126 1 kreverch
      break
127 1 kreverch
   fi
128 1 kreverch
   if [ "$inputConfirm" != "y" ]
129 1 kreverch
   then
130 1 kreverch
      echo "*** Saisir le TID du volume iscsi a supprimer : ***"
131 1 kreverch
   fi
132 1 kreverch
done
133 1 kreverch
134 1 kreverch
echo "**** Recuperation de la propriété Target (identifiant utilise dans le fichier /etc/iet/ietd.conf) ..."
135 1 kreverch
TARGET=$(cat /proc/net/iet/session |grep -i tid:$TID2DEL |cut -d ":" -f3)
136 1 kreverch
137 1 kreverch
echo "Nom de la target a rechercher dans /etc/iet/ietd.conf : $TARGET"
138 1 kreverch
139 1 kreverch
echo ""
140 1 kreverch
echo "**** Check si le volume est en cours d'utilisation ..."
141 1 kreverch
142 1 kreverch
143 1 kreverch
TID_FIND=1
144 1 kreverch
TID_ISACTIVE=1
145 1 kreverch
for line in $(cat /proc/net/iet/session)
146 1 kreverch
do
147 1 kreverch
  if [ $TID_FIND -eq 0 ]
148 1 kreverch
  then
149 1 kreverch
     CHECK_STATE=$(echo $line |awk '{ if ( /state:active/ ){ print 0 }else{ print $1 $line} }')
150 1 kreverch
     if [ "$CHECK_STATE" = "0" ]
151 1 kreverch
     then
152 1 kreverch
         TID_ISACTIVE=0
153 1 kreverch
     fi
154 1 kreverch
155 1 kreverch
  fi
156 1 kreverch
  if [ $TID_ISACTIVE -eq 0 ]
157 1 kreverch
  then
158 1 kreverch
     echo "Le volume isci est en cours d'utilisation, suppression impossible"
159 1 kreverch
     exit 1
160 1 kreverch
  fi
161 1 kreverch
  TID_LISTED=$(echo $line |awk '(/tid:/) { print $1 }')
162 1 kreverch
  if [ "$TID_LISTED" != "" ]
163 1 kreverch
  then
164 1 kreverch
     if [ "tid:$TID2DEL" = "$TID_LISTED" ]
165 1 kreverch
     then
166 1 kreverch
        TID_FIND=0
167 1 kreverch
     else
168 1 kreverch
       TID_FIND=1
169 1 kreverch
     fi
170 1 kreverch
 fi
171 1 kreverch
done
172 1 kreverch
173 1 kreverch
echo "*** Debut de la procédure de suppression ..."
174 1 kreverch
echo ""
175 1 kreverch
176 1 kreverch
ietadm --op delete --tid=$TID2DEL
177 1 kreverch
if [ $? -eq 0 ]
178 1 kreverch
then
179 1 kreverch
   echo "*** La suppression via la commande ietadm s'est termine correctement"
180 1 kreverch
   echo ""
181 1 kreverch
   echo "*** Vérification et suppression du volume dans le fichier /etc/iet/ietd.conf ..."
182 1 kreverch
183 1 kreverch
   COPY_LINE=0
184 1 kreverch
   >/tmp/.buffer_ietd.conf
185 1 kreverch
   while read line
186 1 kreverch
   do
187 1 kreverch
      echo $line |grep -i "^Target"
188 1 kreverch
      if [ $? -eq 0 ]
189 1 kreverch
      then
190 1 kreverch
         COPY_LINE=0
191 1 kreverch
      fi
192 1 kreverch
      echo $line |grep -i "^Target $TARGET"
193 1 kreverch
      if [ $? -eq 0 ]
194 1 kreverch
      then
195 1 kreverch
         COPY_LINE=1
196 1 kreverch
      fi
197 1 kreverch
      if [ $COPY_LINE -eq 0 ]
198 1 kreverch
      then
199 1 kreverch
         echo $line >> /tmp/.buffer_ietd.conf
200 1 kreverch
      fi
201 1 kreverch
202 1 kreverch
    done < "/etc/iet/ietd.conf"
203 1 kreverch
    echo "*** Sauvegarde du fichier /etc/iet/ietd.conf ..."
204 1 kreverch
    TODAY=$(date +%Y%m%d%H%M%S)
205 1 kreverch
    cp /etc/iet/ietd.conf /etc/iet/ietd.conf.$TODAY
206 1 kreverch
    cp /tmp/.buffer_ietd.conf /etc/iet/ietd.conf
207 1 kreverch
208 1 kreverch
209 1 kreverch
   echo ""
210 1 kreverch
   echo "*** Vérification /proc/net/iet/volume :"
211 1 kreverch
   cat /proc/net/iet/volume
212 1 kreverch
213 1 kreverch
   echo ""
214 1 kreverch
   echo "*** Verification repertoire /etc/iet :"
215 1 kreverch
   ls -ltr /etc/iet
216 1 kreverch
217 1 kreverch
   echo ""
218 1 kreverch
   echo "*** Operation de suppression [OK] ..."
219 1 kreverch
else
220 1 kreverch
221 1 kreverch
   echo "*** Un probleme est survenu lors de la tentive de suppresion du volume iscsi TID:$TID2DEL"
222 1 kreverch
   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 1 kreverch
fi
224 1 kreverch
echo "*** FIN ***"
225 1 kreverch
}
226 1 kreverch
227 1 kreverch
while getopts "iT:h" OPTION
228 1 kreverch
do
229 1 kreverch
     case $OPTION in
230 1 kreverch
         h)
231 1 kreverch
             usage
232 1 kreverch
             exit 1
233 1 kreverch
             ;;
234 1 kreverch
         i)
235 1 kreverch
             interactive
236 1 kreverch
             ;;
237 1 kreverch
         T)
238 1 kreverch
             TID2DEL=$OPTARG
239 1 kreverch
             ;;
240 1 kreverch
         *)
241 1 kreverch
             usage
242 1 kreverch
             exit 1
243 1 kreverch
             ;;
244 1 kreverch
     esac
245 1 kreverch
done
246 1 kreverch
247 1 kreverch
if [ ! -d "/proc/net/iet" ]
248 1 kreverch
then
249 1 kreverch
  echo "Please, check if ietd is running ..." 1>&2
250 1 kreverch
  exit 1
251 1 kreverch
fi
252 1 kreverch
if [ -z $TID2DEL ]
253 1 kreverch
then
254 1 kreverch
   usage
255 1 kreverch
   exit 1
256 1 kreverch
fi
257 1 kreverch
nointeractive