I'd like to contribute to the community with this stuff. It's a backup script for Windows operating systems:
Download scripts here: http://www.michublog.com/informatica/sc ... de-windows
Method 1: poweroff VM and copy folder
Code: Select all
@ECHO OFF
CLS
SET "VM=Ubuntu Server 14.04"
SET "VM_DIR=C:\VirtualBox VMs\"
SET "BACKUP_DIR=C:\VirtualBox VMs\backup\"
SET VBOXMANAGE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
SET RAR="C:\Program Files\WinRAR\Rar.exe"
SET CICLOS=10
SET PAUSAS=5
SET SOLICITUD_APAGADO=0
SET ERROR=0
SET RUNNING_INICIAL=2
ECHO Starting backup VM "%VM%"...
:check_running
%VBOXMANAGE% list runningvms > %TEMP%\runningvms.txt
FIND "%VM%" %TEMP%\runningvms.txt > nul
IF %errorlevel% EQU 0 (
SET RUNNING=1
) ELSE (
SET RUNNING=0
)
IF %RUNNING_INICIAL% EQU 2 (
SET RUNNING_INICIAL=%RUNNING%
)
IF %CICLOS% GTR 0 (
IF %RUNNING% EQU 1 (
IF %SOLICITUD_APAGADO% EQU 0 (
SET SOLICITUD_APAGADO=1
ECHO Power off VM "%VM%"...
%VBOXMANAGE% controlvm "%VM%" acpipowerbutton
)
ECHO Waiting VM "%VM%" shut down...
TIMEOUT /t %PAUSAS% /nobreak > nul
SET /a CICLOS-=1
GOTO check_running
) ELSE (
ECHO VM "%VM%" is power off now...
)
)
DEL %TEMP%\runningvms.txt
IF %RUNNING% EQU 1 (
SET ERROR=1
GOTO end
)
:copy_vm
ECHO Copying VM "%VM%"...
TIMEOUT /t 3 /nobreak > nul
XCOPY "%VM_DIR%%VM%" "%BACKUP_DIR%%VM%" /E /I /Y
IF %errorlevel% NEQ 0 (
SET ERROR=2
GOTO end
)
:start_vm
IF %RUNNING_INICIAL% EQU 1 (
ECHO Starting VM "%VM%"...
%VBOXMANAGE% startvm "%VM%"
IF %errorlevel% NEQ 0 (
SET ERROR=3
GOTO end
)
)
:compress_backup
ECHO Compressing backup VM "%VM%"...
SET FECHA=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
%RAR% a -r -ep1 -o+ "%BACKUP_DIR%%VM% %FECHA%.rar" "%BACKUP_DIR%%VM%"
IF %errorlevel% NEQ 0 (
SET ERROR=4
GOTO end
)
:delete_uncompressed_backup
ECHO Removing uncompressed backup VM "%VM%"...
RMDIR "%BACKUP_DIR%%VM%" /S /Q
IF %errorlevel% NEQ 0 (
SET ERROR=5
GOTO end
)
:end
IF %ERROR% GTR 0 (
ECHO Error ^(%ERROR%^) while creating backup VM "%VM%".
) ELSE (
ECHO Backup finished OK.
)Code: Select all
@ECHO OFF
CLS
SET "VM=Ubuntu Server 14.04"
SET "VM_DIR=C:\VirtualBox VMs\"
SET "BACKUP_DIR=C:\VirtualBox VMs\backup\"
SET VBOXMANAGE="C:\Program Files\Oracle\VirtualBox\VBoxManage.exe"
SET ERROR=0
SET RUNNING_INICIAL=2
ECHO Starting backup VM "%VM%"...
:check_running
%VBOXMANAGE% list runningvms > %TEMP%\runningvms.txt
FIND "%VM%" %TEMP%\runningvms.txt > nul
IF %errorlevel% EQU 0 (
SET RUNNING_INICIAL=1
) ELSE (
SET RUNNING_INICIAL=0
)
DEL %TEMP%\runningvms.txt
IF %RUNNING_INICIAL% EQU 1 (
ECHO Saving state VM "%VM%"...
%VBOXMANAGE% controlvm "%VM%" savestate
IF %errorlevel% NEQ 0 (
SET ERROR=1
GOTO end
)
)
:export_vm
ECHO Exporting VM "%VM%"...
TIMEOUT /t 3 /nobreak > nul
SET FECHA=%DATE:~6,4%-%DATE:~3,2%-%DATE:~0,2%
%VBOXMANAGE% export "%VM%" -o "%BACKUP_DIR%%VM% %FECHA%.ovf"
IF %errorlevel% NEQ 0 (
SET ERROR=2
GOTO end
)
:start_vm
IF %RUNNING_INICIAL% EQU 1 (
ECHO Starting VM "%VM%"...
%VBOXMANAGE% startvm "%VM%"
IF %errorlevel% NEQ 0 (
SET ERROR=3
GOTO end
)
)
:end
IF %ERROR% GTR 0 (
ECHO Error ^(%ERROR%^) while creating backup VM "%VM%".
) ELSE (
ECHO Backup finished OK.
)I hope it helped.