scripts-backup/backup_lvm.sh
2025-02-03 02:51:33 +01:00

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;