Lvm snapshot

De BlaxWiki
Révision datée du 17 avril 2018 à 10:51 par 127.0.0.1 (discussion) (Page créée avec « Ce script crée des snapshot des volumes LVM des VM présentes <pre> #!/bin/bash lvlist=`lvs | awk '{print $1}' | grep -E "root|system"` vg="vol_kvm" currentdate=$(date "... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigationAller à la recherche

Ce script crée des snapshot des volumes LVM des VM présentes

#!/bin/bash
lvlist=`lvs | awk '{print $1}' | grep -E "root|system"`
vg="vol_kvm"
currentdate=$(date "+%A-%d%m%y")
lvsize="2G"
retentionday=7
firstsnap=1

function snapshot {
for lv in `echo $lvlist`;do
        vm=`echo $lv | cut -d"." -f1`
        lvcreate -L$lvsize -s -n snap.$firstsnap.$vm-$currentdate /dev/$vg/$lv
        rotate $vm
done
}

function rotate() {
snaplist=`lvdisplay | grep -E "LV Name.*snap.*$1" | grep -v $currentdate | awk '{print $3}' | sort`
for lv in `echo $snaplist`;do
        snapcount=`echo $lv | cut -d"." -f2`
        if [ $snapcount -eq $retentionday ];then
                lvremove -f /dev/$vg/$lv
        else
                newsnapcount=$(($snapcount+ 1))
                newlvname=`echo $lv | sed s/snap.\./snap.$newsnapcount/`
                lvrename /dev/$vg/$lv /dev/$vg/$newlvname
        fi
done
}

snapshot