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 |
|