根据挂载点筛选所属vg lv
dir="/vg/lv1"
df -h | awk -v var=$dir '$6 == var {print $1}'
根据vg lv 筛选挂载点
vg_name="vg"
lv_name="lv1"
df -h | awk -v var="/dev/mapper/$vg_name-$lv_name" '$1 == var {print $6}'
输入一个pv查找所属的vg
pvdisplay /dev/sdb | awk '/VG Name/ {print $3}'
查找vg的所有lv
lvs --noheadings -o lv_name /dev/vg
给定分区,卸载挂载点,删除pv vg lv
disk="sdb"
vg_name=$(pvdisplay /dev/"$disk" | awk '/VG Name/ {print $3}')
lvs_name=$(lvs | awk -v var=$vg_name '$2 == var {print $1}')
lvs_name=$(echo "$lvs_name" | tr '[[:space:]]+' '\n')
for lv_name in $lvs_name
do
dir_lv=$(df -h | awk -v var="/dev/mapper/$vg_name-$lv_name" '$1 == var {print $6}')
echo dir_lv is $dir_lv
echo var is "/dev/mapper/$vg_name-$lv_name"
if [[ "$dir_lv" =~ [[:print:]] ]]
then
echo "umount $dir_lv"
umount $dir_lv
fi
done
for lv_name in $lvs_name
do
echo /dev/"$vg_name"/"$lv_name"
lvremove -y /dev/"$vg_name"/"$lv_name"
done
vgremove $vg_name
pvremove /dev/$disk