Virsh Backup Script Block Commit
Zur Navigation springen
Zur Suche springen
#!/bin/bash
VM=$1
STATE=ss-$(date "+%s")
BACKUP="/mnt/data/backup/mabel/"
DATE=$(date "+%Y-%m-%d-%H-%M")
LOG=/tmp/$VM-$DATE.log
echo "start backup $VM $DATE" > $LOG
echo virsh snapshot-create-as --domain $VM $STATE --diskspec vda,file=/var/lib/libvirt/images/$VM.$STATE --disk-only --atomic >> $LOG
if virsh snapshot-create-as --domain $VM $STATE --diskspec vda,file=/var/lib/libvirt/images/$VM.$STATE --disk-only --atomic >> $LOG
then
echo rsync --progress /var/lib/libvirt/images/$VMqcow2 $BACKUP/$VM-$DATE.qcow >> $LOG
if rsync --progress /var/lib/libvirt/images/$VM.qcow2 $BACKUP/$VM-$DATE.qcow >> $LOG
then
echo virsh blockcommit $VM vda --active --verbose --pivot >> $LOG
if virsh blockcommit $VM vda --active --verbose --pivot >> $LOG
then
rm -v /var/lib/libvirt/images/$VM.$STATE >> $LOG
else
echo "virsh blockcommit $VM vda failed" >> $LOG
fi
else
echo rsync failed >> $LOG
fi
else
echo virsh snapshot-create-as failed >> $LOG
fi
ENDDATE=$(date "+%Y-%m-%d-%H-%M")
echo "end backup $VM $ENDDATE" >> $LOG