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="…“) |
|||
| Zeile 1: | Zeile 1: | ||
| − | < | + | <pre> |
#!/bin/bash | #!/bin/bash | ||
VM=$1 | VM=$1 | ||
| Zeile 43: | Zeile 43: | ||
echo "end backup $VM $ENDDATE" >> $LOG | echo "end backup $VM $ENDDATE" >> $LOG | ||
cat $LOG | mail -s "$SUBJECT" $MAILTO | cat $LOG | mail -s "$SUBJECT" $MAILTO | ||
| − | </ | + | </pre> |
Aktuelle Version vom 4. Dezember 2018, 10:28 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