root / bin / del-iscsi-volume @ 30
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 |
|