20 lines
668 B
Bash
Executable File
20 lines
668 B
Bash
Executable File
#!/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;
|
|
|