Скрипт резервного копирования VirtualBox

Не нашел готового, написал свой скрипт.
Основан он на использовании 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

Скрипт резервного копирования VirtualBox: 2 комментария

  1. Sv9t

    пишет «cp: cannot stat ‘VMs/Zabbix/Zabbix.vbox’: No such file or directory»
    я так понимаю такого пути нет «VMs», сама виртуалка находится в home/vbox/VirtualBox VMs/Zabbix/Zabbix.vbox

  2. atomic@ipclub.dp.ua Автор записи

    Можно сделать так:
    cp "$VDI" "$BACKUP_DIR/$VM/"
    Проблема в путях с пробелами, я лично стараюсь таких избегать, потому не столкнулся.
    Исправил в скрипте, спасибо.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *