#!/bin/bash DIR=/mnt/backups_filesystems VG=`echo $0|rev|cut -d_ -f2|rev`; LV=`echo $0|rev|cut -d_ -f1|rev`; FREE=`vgs --noheadings $VG --units b|rev|cut -d' ' -f1|rev|cut -dB -f1`; if [[ "$FREE" -lt 104857600 ]]; then echo "Not enough space to make snapshot"; exit 1; fi; TIMESTAMP=`date +%Y%m%d-%H%M%S` lvcreate --addtag backup --snapshot --size 100M --name $LV-$TIMESTAMP $VG/$LV > /dev/null [[ -f "$DIR/$VG_$LV.img" ]] && rm $DIR/$VG_$LV.img [[ -f "$DIR/$VG_$LV.img.gz" ]] && rm $DIR/$VG_$LV.img.gz dd if=/dev/$VG/$LV-$TIMESTAMP bs=1024 conv=noerror,sync status=none | gzip -c -9 > $DIR/$VG_$LV.img.gz lvremove -y $VG/$LV-$TIMESTAMP > /dev/null exit 0;