-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathclean_vgs.sh
executable file
·67 lines (53 loc) · 1.01 KB
/
clean_vgs.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/bash
set -x
YES=0
NO=1
VERBOSE=$YES
DEBUG=$YES
VGS=( vg_pgsql vg_backups vg_confluence )
ECHO=
[[ $DEBUG -eq $YES ]] && ECHO=echo
get_mountpoint() {
local _vg="$1"
mount | grep $_vg | cut -d' ' -f1
}
mp_destroy() {
local _mp="$1"
[[ -n "$_mp" ]] && {
$ECHO umount "$_mp"
$ECHO wipefs -a -f "$_mp"
}
}
vg_delete() {
local _vg="$1"
local _count=$( vgs | grep -c "$_vg" )
[[ $_count -gt 0 ]] && $ECHO vgremove -y $_vg
}
get_pv() {
local _vg="$1"
vgs | grep -qF "$_vg" \
&& vgs -o pv_name --noheadings $_vg
}
pv_wipe() {
local _pv="$1"
# $ECHO dd if=/dev/zero of=$pv bs=1M count=1
$ECHO wipefs -a -f "$_pv"
}
get_lv() {
local _vg="$1"
vgs | grep -qF "$_vg" \
&& vgs -o lv_name --noheadings "$_vg"
}
for vg in "${VGS[@]}" ; do
lv=$( get_lv "$vg" )
pv=$( get_pv "$vg" )
mountp=$( get_mountpoint "$vg" )
mp_destroy "$mountp"
# vg_delete "$vg"
#
# for pv in "${peevees[@]}" ; do
# echo "PV REMOVE $pv"
# $ECHO pvremove -y "$pv"
# pv_wipe "$pv"
# done
done