Script de backup (para sistemas que não têm)
90% do meu trabalho é suporte. Dou suporte à usuários, manutenção de PCs e sistemas operacionais, etc. E, é claro, sempre em pequenas e médias empresas onde há sistemas de gestão mais simples, e tudo fica a cargo do usuário, inclusive o backup. Na maioria dos casos o "servidor" é um PC qualquer da empresa, o que faz da questão um tanto delicada.
Deixar o usuário a cargo do backup é quase insano, ainda mais em computadores comuns onde os usuários fazem as tarefas comuns. Sem falar que muitos desses sistemas simplesmente não têm ferramenta de backup! O backup é feito copiando manualmente uma pasta ou os arquivos do banco de dados.
Alguns oferecem um script de backup que pode ser agendado como tarefa do Windows, outros não. É aqui onde quero chegar. Andei trabalhando com alguns softwares que o desenvolvedor não dá qualquer suporte ao backup e os usuários acabaram fazendo bagunça na hora de copiar os arquivos. Vou dar um exemplo de script de backup de uma pasta, o qual o usuário pode fazer um backup seguro com apenas um clique (e restaurá-lo da mesma forma) e você pode programar o Windows para executar em determinado horário.
Neste exemplo, como na maioria dos sistemas, será copiada toda a pasta para um arquivo zip nomeado com a data e o horário. Você deve fazer a cópia para pelo menos 2 locais em discos diferentes e de preferência agendar a tarefa em um horário de nenhum ou pouco movimento. Depois um segundo script será criado de forma que basta arrastar o arquivo zip para ele e o backup é restaurado.
Veja o exemplo abaixo, copie no bloco de notas e salve com extensão .CMD:
@echo off
color F0
title Backup pasta do Sistema
rem Definindo variáveis de data e horário para o nome do arquivo
set year=%date:~-4,4%
set month=%date:~-10,2%
set day=%date:~-7,2%
set hour=%time:~-11,2%
set hour=%hour: =0%
set min=%time:~-8,2%
rem Definindo Endereços das pastas e arquivos
set PastaSistema=C:\Sistema
set PastaTemp=%USERPROFILE%\Temp-BKP
set PastaDestino=%USERPROFILE%\BKP-Sistema
set PastaDestino2=\\127.0.0.1\Compartilhada
set NomeArqZip=Sistema-%year%.%month%.%day%.%hour%%min%.zip
rem Verificando instalação do 7zip
set App7zipPath="%ProgramFiles(x86)%\7-Zip\7z.exe"
if not exist %App7zipPath% set App7zipPath="%ProgramFiles%\7-Zip\7z.exe"
if not exist %App7zipPath% goto NaoInstalado
rem Verificando existencia de pastas
if not exist %PastaTemp% mkdir %PastaTemp%
if not exist %PastaDestino% mkdir %PastaDestino%
if not exist %PastaSistema% goto Fim
xcopy /E /H %PastaSistema%\* %PastaTemp%\
echo.
echo -----------
echo Copiando %PastaSistema% para %PastaDestino%\
echo -----------
echo.
%App7zipPath% a %PastaDestino%\%NomeArqZip% -r %PastaTemp%\*
%App7zipPath% a %PastaDestino2%\%NomeArqZip% -r %PastaTemp%\*
echo.
echo -----------
echo %PastaSistema%\ Copiada para %PastaDestino%\%NomeArqZip%
echo -----------
echo.
goto Fim
:NaoInstalado
echo.
echo Aplicativo 7zip não instalado - Acesse o site oficial em:
echo http://www.7-zip.org/
:Fim
del /a /s /f /q "%PastaTemp%\*"
rmdir /s /q "%PastaTemp%\"
echo.
echo.
echo FIM !
echo.
echo.
pause
Você deve substituir os endereços das variáveis pelas respectivas pastas do sistema e do backup. Os arquivos são copiados para uma pasta temporária e em seguida é criado o arquivo de destino. Ainda há uma segunda pasta de destino (variável PastaDestino2) por segurança. Coloquei como exemplo uma pasta compartilhada.
Com um clique duplo o backup é feito. Você pode agendar uma tarefa no Windows para fazer automaticamente. Continuando, um segundo script deve ser colocado na pasta onde ficam os backups para poder restaurá-los de maneira simples, apenas arrastando o arquivo ZIP para o script. Veja o conteúdo abaixo o salve na pasta dos backups com o nome "Arraste aqui para Restaurar o Backup":
@echo off
color F0
rem definindo path do 7zip
set App7zipPath="%ProgramFiles(x86)%\7-Zip\7z.exe"
if not exist %App7zipPath% set App7zipPath="%ProgramFiles%\7-Zip\7z.exe"
if not exist %App7zipPath% goto NaoInstalado
rem Tratando argumento
set Endereco=%1
if not defined Endereco ( echo. & echo "Arraste o arquivo para este progama" & echo. & pause & exit )
set PastaSistema=c:\Sistema
title Restaurando %1 para %PastaSistema%\
rem Restaurar arquivo indicado para a pasta do sistema
echo.
echo -----------
echo Restaurando %1 para %PastaSistema%\
echo -----------
echo.
%App7zipPath% X -aoa %1 -o%PastaSistema%\
echo.
echo -----------
echo FIM !!!
echo -----------
echo.
rem Fim
:Fim
echo.
echo.
pause
exit
rem 7zip Não encontrado
:NaoInstalado
echo.
echo ----------
echo.
echo 7zip nao instalado - Baixe em:
echo http://www.7-zip.org/
echo.
echo ----------
pause
goto Fim
Novamente, altere apenas a variável "PastaSistema" e o script de restauração está pronto. Basta arrastar o arquivo ZIP para ele e pronto. Veja a imagem:
Comentários
Postar um comentário