Virsh Backup Script Block Commit Mail: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Thomas (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „<source lang=bash> #!/bin/bash VM=$1 STATE=ss-$(date "+%s") BACKUP="/mnt/data/backup/mabel/$VM" DATE=$(date "+%Y-%m-%d-%H-%M") LOG=/tmp/$VM-$DATE.log SUBJECT="…“) |
(kein Unterschied)
|
Version vom 2. April 2017, 15:57 Uhr
#!/bin/bash
VM=$1
STATE=ss-$(date "+%s")
BACKUP="/mnt/data/backup/mabel/$VM"
DATE=$(date "+%Y-%m-%d-%H-%M")
LOG=/tmp/$VM-$DATE.log
SUBJECT="OK: $VM Backup"
MAILTO="thomas@xxxxx.lan"
test -d $BACKUP || mkdir -p $BACKUP
echo "start backup $VM $DATE" > $LOG
cp -v /etc/libvirt/qemu/$VM.xml $BACKUP/$DATE-$VM.xml >> $LOG
virsh domblklist $VM | grep "^[sv]d[abcd]" | tr -s " " | while read LINE
do
DEV=$(echo $LINE | cut -f 1 -d " ")
IMG=$(echo $LINE | cut -f 2 -d " ")
echo virsh snapshot-create-as --domain $VM $STATE --diskspec $DEV,file=$IMG.$STATE --disk-only --atomic >> $LOG
if virsh snapshot-create-as --domain $VM $STATE --diskspec $DEV,file=$IMG.$STATE --disk-only --atomic >> $LOG
then
echo rsync $IMG $BACKUP/$DATE-$IMG >> $LOG
if rsync --progress $IMG $BACKUP/$DATE-$(basename $IMG) >> $LOG
then
echo virsh blockcommit $VM $DEV --active --verbose --pivot >> $LOG
if virsh blockcommit $VM $DEV --active --verbose --pivot >> $LOG
then
rm -v $IMG.$STATE >> $LOG
echo virsh snapshot-delete $VM --metadata $STATE >> $LOG
virsh snapshot-delete $VM --metadata $STATE
else
echo "virsh blockcommit $VM $DEV failed" >> $LOG
SUBJECT="ERROR: $VM blockcommit failed"
fi
else
echo rsync failed >> $LOG
SUBJECT="ERROR: $VM rsync failed"
fi
else
echo virsh snapshot-create-as failed >> $LOG
SUBJECT="ERROR: $VM snapshot create failed"
fi
done
ENDDATE=$(date "+%Y-%m-%d-%H-%M")
echo "end backup $VM $ENDDATE" >> $LOG
cat $LOG | mail -s "$SUBJECT" $MAILTO