Olá galera!
Eu estava precisando fazer um backup automático de algumas máquinas virtuais, sendo assim estive pesquisando por alguns scripts (.bat) para executar esta operação.
Encontrei algumas informações e fui juntando até criar o seguinte script:
@echo off: Oculta os comandos executados no prompt.
@echo: Mostra uma mensagem no prompt.
@color: Altera a cor do fundo e das letras do prompt.
@rem: Usado para adicionar um comentário.
cd: Altera o caminho em que o comando será executado.
xcopy: Copiar os arquivos de um local especifico.
/E -> Copia diretórios e subdiretórios mesmo que estejam vazios.
/S -> Copia diretórios e subdiretório.
/Y-> Substitui os arquivos sem que seja necessário digitar algo no prompt (SIM/NÃO/TODOS).
exit: Finaliza o prompt.
----------------------------------------------------------------------------------
Lembrando que os campos em negrito devem ser alterados com suas informações e é preciso remover as aspas (").
----------------------------------------------------------------------------------
Para efetuar o backup automático de uma máquina virtual criei o seguinte script (.bat):
@echo off
@color 0A
@rem O VIRTUALBOX UTILIZADO NESTE SCRIPT ESTÁ INSTALADO NO C: , CASO O SEU ESTEJA INSTALADO EM OUTRA PARTICÃO ALTERAR PELO COMANDO CD.
cd "\Program Files\Oracle\VirtualBox\"
@echo ----------------------------
@echo Desligando a maquina virtual
@echo ----------------------------
@rem O COMANDO A SEGUIR IRÁ DESLIGAR A MÁQUINA VIRTUAL.
vboxmanage controlvm "Nome da VM" acpipowerbutton
@rem O PING SERVE PARA AGUARDAR UM TEMPO ATÉ QUE A MÁQUINA SEJA DESLIGADA. EX: SE DEMORA 5 MINUTOS O VALOR DEVERA SER 300000 (-w 300000)
ping -w 300000 -n 1 1.0.0.1
@echo off
@rem O COMANDO A SEGUIR IRÁ ALTERAR O CAMINHO PARA A PASTA ONDE ESTÃO LOCALIZADOS OS ARQUIVOS QUE voce DESEJA FAZER O BACKUP.
cd "CAMINHO DOS ARQUIVOS PARA BACKUP"
@echo -------------------------------------
@echo Iniciando Backup.
@echo -
@echo O backup pode demorar alguns minutos.
@echo -------------------------------------
@echo off
@rem O COMANDO A SEGUIR IRÁ COPIAR OS ARQUIVOS QUE VOCÊ DESEJA, PARA O CAMINHO QUE VOCÊ SELECIONAR (SE VOCÊ INFORMAR *.* NO CAMINHO DOS ARQUIVOS PARA BACKUP SERÁ FEITO O BACKUP DE TODOS OS ARQUIVOS).
xcopy /S /E /Y "CAMINHO DOS ARQUIVOS PARA BACKUP" "CAMINHO ONDE SERÁ FEITO O BACKUP"
@echo -----------------
@echo Backup Finalizado
@echo -----------------
ping -w 5000 -n 1 1.0.0.1
@rem O COMANDO A SEGUIR IRÁ RETORNAR PARA A PASTA DA MAQUINA VIRTUAL, PARA QUE A MESMA SEJA INICIADA NOVAMENTE.
@rem ALTERAR CONFORME ESTEJA INSTALADO SEU VIRTUALBOX.
cd "\Program Files\Oracle\VirtualBox\"
@echo -------------------------
@echo Ligando a maquina virtual
@echo -------------------------
vboxmanage startvm "Nome da VM"
ping -w 10000 -n 1 1.0.0.1
exit
----------------------------------------------------------------------------------
OBS: O backup pode ser feito com a máquina virtual ligada, pois o .bat irá desligar a mesma e após terminar o backup liga-la novamente.
O arquivo .bat está em anexo, link abaixo:
backup.rar
Valeu!!
Fontes:
http://flapjacksaz.wordpress.com/2012/02/03/automated-backup-of-virtual-box-systems/
http://professorsilvertone.blogspot.com.br/2012/06/comandos-de-arquivos-em-lotes-bat.html
http://www.hardware.com.br/comunidade/copiar-pasta/1014433/
http://answers.microsoft.com/pt-br/protect/forum/mse-protect_start/fazer-um-comando-bat-e-n%C3%A3o-perguntar-se-quer/dcbf7564-d26a-4219-81f8-d409b35ece1c