Не нашел готового, написал свой скрипт.
Основан он на использовании SNAPSHOT для резервного копирования.
Единственное — при его восстановлении у виртуальной машины возникает ощущение что у нее просто посреди работы выдернули питание.
Поэтому в некоторых случаях его применять нельзя. Но для моих целей — подходит.
#!/bin/bash BACKUP_DIR=/mnt/backup/vms if [ -z "$1" ] then echo "Supply name of virtual machine or ALL for all running VMs" exit fi if [ "$1" = "ALL" ] then VMS=`VBoxManage list runningvms|awk '{FS=" "}{print $1}'|sed s/\"//g` else VMS=$1 fi for VM in $VMS do echo $VM mkdir $BACKUP_DIR/$VM/ CFG=`VBoxManage showvminfo $VM --machinereadable|grep CfgFile|awk '{FS="="}{print $2}'|sed s/\"//g` echo "Copy $CFG ==> $BACKUP_DIR/$VM/" cp $CFG $BACKUP_DIR/$VM/ VDIS=`VBoxManage showvminfo $VM --machinereadable|grep .vdi|awk '{FS="="}{print $2}'|sed s/\"//g` echo "Make snapshot of $VM" VBoxManage snapshot $VM take autobackup for VDI in $VDIS do #копирование диска echo "Copy $VDI>$BACKUP_DIR/$VM/" cp "$VDI" "$BACKUP_DIR/$VM/" done echo "Delete snapshot of $VM" VBoxManage snapshot $VM delete autobackup done
пишет «cp: cannot stat ‘VMs/Zabbix/Zabbix.vbox’: No such file or directory»
я так понимаю такого пути нет «VMs», сама виртуалка находится в home/vbox/VirtualBox VMs/Zabbix/Zabbix.vbox
Можно сделать так:
cp "$VDI" "$BACKUP_DIR/$VM/"
Проблема в путях с пробелами, я лично стараюсь таких избегать, потому не столкнулся.
Исправил в скрипте, спасибо.