Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ECHO OFF
- REM QBFC Project Options Begin
- REM HasVersionInfo: No
- REM Companyname: BlueTi
- REM Productname: ScriptBackup2.1
- REM Filedescription:
- REM Copyrights:
- REM Trademarks:
- REM Originalname:
- REM Comments:
- REM Productversion: 02.01. .
- REM Fileversion: 02.01. .
- REM Internalname:
- REM Appicon: Icon_27.ico
- REM AdministratorManifest: No
- REM QBFC Project Options End
- ECHO ON
- @ECHO OFF
- set final=0
- ::===============================================================================
- ::CONFIGURAÇÕES DE AMBIENTE
- ::-------------------------------------------------------------------------------
- ::Lendo arquivo de parametro
- for /f "tokens=1,2 delims==" %%a in (ScriptBackup.ini) do (
- if %%a==Empresa set Empresa=%%b
- if %%a==Banco set Banco=%%b
- if %%a==Servidor set Servidor=%%b
- if %%a==LocalBkp set LocalBkp=%%b
- if %%a==LocalLog set LocalLog=%%b
- if %%a==mail set Mail=%%b
- )
- ::===============================================================================
- ::CRIANDO PASTAS
- ::===============================================================================
- IF NOT EXIST "%LocalBkp%" (
- MD "%LocalBkp%"
- )
- IF NOT EXIST "%LocalLog%" (
- MD "%LocalLog%"
- )
- ::===============================================================================
- :: EFETUANDO TESTES DE SENHA PARA O BANCO E IDENTIFICANDO VERSAO DO BANCO
- ::===============================================================================
- ::-------------------------------------------------------------------------------
- ::GERANDO SCRIPT SQL DE TESTE
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalBkp%\senha.sql DEL %LocalBkp%\senha.sql /Q
- @ECHO quit >>%LocalBkp%\senha.sql
- ::-------------------------------------------------------------------------------
- :: Verifica Senha do Banco
- ::-------------------------------------------------------------------------------
- SET codigo=triggerBlue
- :senha1
- SQLCMD -S %Servidor% -U sa -P %codigo% -i %LocalBkp%\senha.sql >>%LocalBkp%\senha.txt
- goto :senha1a
- :senha2
- SQLCMD -S %Servidor% -U sa -P %codigo% -i %LocalBkp%\senha.sql>>%LocalBkp%\senha.txt
- goto :senha2a
- :senha3
- SQLCMD -S %Servidor% -U sa -P %codigo% -i %LocalBkp%\senha.sql>>%LocalBkp%\senha.txt
- goto :senha3a
- :senha1a
- IF %ERRORLEVEL% EQU 1 ( SET codigo=linkBlue30
- goto :senha2
- ) ELSE IF %ERRORLEVEL% LSS 1 ( goto :senhaf
- )
- :senha2a
- IF %ERRORLEVEL% EQU 1 ( SET codigo=estadao
- goto :senha3
- ) ELSE IF %ERRORLEVEL% LSS 1 ( goto :senhaf
- )
- :senha3a
- IF %ERRORLEVEL% EQU 1 SET codigo=operatorblue
- :senhaf
- IF EXIST %LocalBkp%\senha.sql DEL %LocalBkp%\senha.sql /Q
- IF EXIST %LocalBkp%\senha.txt DEL %LocalBkp%\senha.txt
- ::-------------------------------------------------------------------------------
- ::Gerando Script SQL Para Verificar a Versão do Banco
- ::-------------------------------------------------------------------------------
- IF EXIST versao.sql (
- DEL versao.sql /Q
- )
- IF EXIST versao.txt (
- DEL versao.txt /Q
- )
- @ECHO select >>versao.sql
- @ECHO Versao + VersaoRelease >>versao.sql
- @ECHO from TbHistAtualiz>>versao.sql
- @ECHO where>>versao.sql
- @ECHO Versao = (select MAX(Versao) from TbHistAtualiz)>>versao.sql
- @ECHO and VersaoRelease = (select MAX(VersaoRelease) from TbHistAtualiz>>versao.sql
- @ECHO where Versao = (select MAX(Versao) from TbHistAtualiz))>>versao.sql
- ::-------------------------------------------------------------------------------
- :: Executando teste SQL Para Verificar a Versão do Banco
- ::-------------------------------------------------------------------------------
- SQLCMD -S %Servidor% -U sa -P %codigo% -d %banco% -i "versao.sql" >>versao.txt
- IF %ERRORLEVEL% EQU 1 goto :ERROLEVEL
- FOR /F "skip=1 eol=( tokens=1" %%f in (versao.txt) do (set versao=%%f)
- IF EXIST versao.sql (
- DEL versao.sql /Q
- )
- IF EXIST versao.txt (
- DEL versao.txt /Q
- )
- ::===============================================================================
- ::CONFIGURANDO O FORMATO DE HORA E DIA DE SEMANA
- ::===============================================================================
- @ECHO OFF
- SET hora=%time:~0,2%
- IF %hora% GTR 9 ( SET hora=%time:~0,2%
- ) ELSE IF %hora% LSS 10 ( SET hora=%time:~1,1%
- )
- IF %hora%==1 SET hora=01
- IF %hora%==2 SET hora=02
- IF %hora%==3 SET hora=03
- IF %hora%==4 SET hora=04
- IF %hora%==5 SET hora=05
- IF %hora%==6 SET hora=06
- IF %hora%==7 SET hora=07
- IF %hora%==8 SET hora=08
- IF %hora%==9 SET hora=09
- SET ano=%date:~-4,4%
- SET mes=%date:~3,2%
- IF %mes%==01 SET mes_x=0
- IF %mes%==02 SET mes_x=3
- IF %mes%==03 SET mes_x=3
- IF %mes%==04 SET mes_x=6
- IF %mes%==05 SET mes_x=1
- IF %mes%==06 SET mes_x=4
- IF %mes%==07 SET mes_x=6
- IF %mes%==08 SET mes_x=2
- IF %mes%==09 SET mes_x=5
- IF %mes%==10 SET mes_x=0
- IF %mes%==11 SET mes_x=3
- IF %mes%==12 SET mes_x=5
- SET dia=%date:~0,2%
- IF %dia%==01 SET dia=1
- IF %dia%==02 SET dia=2
- IF %dia%==03 SET dia=3
- IF %dia%==04 SET dia=4
- IF %dia%==05 SET dia=5
- IF %dia%==06 SET dia=6
- IF %dia%==07 SET dia=7
- IF %dia%==08 SET dia=8
- IF %dia%==09 SET dia=9
- ::-------------------------------------------------------------------------------
- ::VEFIFICA QUANTOS ANOS SE PASSOU DESDE 1900
- ::-------------------------------------------------------------------------------
- SET /a ano_calc=(%ano%-1900)
- SET /a ano_c=(%ano%-1900)/4
- ::-------------------------------------------------------------------------------
- :: Verifica se o ano atual é bissexto
- ::-------------------------------------------------------------------------------
- SET /a ano_anterior=(%ano%-1900-1)/4
- ::-------------------------------------------------------------------------------
- ::se ano atual for bissesto verifica mes
- ::-------------------------------------------------------------------------------
- IF %ano_c% NEQ %ano_anterior% ( GOTO :Verifica_mes
- ) ELSE IF %ano_c% EQU %ano_anterior% ( GOTO :NEXT
- )
- ::-------------------------------------------------------------------------------
- :: Se ano for bissexto, verifica se mes é menor que 02 fevereiro, caso positivo diminui um ano no cálculo
- ::-------------------------------------------------------------------------------
- :Verifica_mes
- IF %mes% LSS 03 SET /a ano_c=%ano_c%-1
- ) ELSE IF %mes% GTR 2 ( GOTO :NEXT
- )
- ::-------------------------------------------------------------------------------
- :: Verifica Dia
- ::-------------------------------------------------------------------------------
- :NEXT
- SET /a dia_c=%dia%-1
- ::-------------------------------------------------------------------------------
- :: Calculando e encontrando dia da semana
- ::-------------------------------------------------------------------------------
- SET /a semana_c=(%ano_calc%+%ano_c%+%mes_x%+%dia_c%)/7
- SET /a semana=(%semana_c%)*7-(%ano_calc%+%ano_c%+%mes_x%+%dia_c%)
- IF %semana%==0 SET semana=Segunda
- IF %semana%==-1 SET semana=Terca
- IF %semana%==-2 SET semana=Quarta
- IF %semana%==-3 SET semana=Quinta
- IF %semana%==-4 SET semana=Sexta
- IF %semana%==-5 SET semana=Sabado
- IF %semana%==-6 SET semana=Domingo
- ::===============================================================================
- :: VERIFICA SE EXITE A INSTALAÇÃO DO WINRAR
- ::===============================================================================
- @IF EXIST "%ProgramFiles%\WinRAR\WinRAR.exe" (
- SET local_rar="%ProgramFiles%\WinRAR\WinRAR.exe"
- ) ELSE IF EXIST "%ProgramFiles(x86)%\WinRAR\WinRAR.exe" (
- SET local_rar="%ProgramFiles(X86)%\WinRAR\WinRAR.exe"
- ) ELSE IF NOT EXIST "%ProgramFiles(x86)%\WinRAR\WinRAR.exe" (
- @ECHO ===============================================================================
- @ECHO ATEMCAO! WINRAR NAO LOCALIZADO
- @ECHO ===============================================================================
- @ECHO PARA PROSSEGUIR PRECISA INSTALA-LO NO LOCAL PADRAO
- @ECHO -------------------------------------------------------------------------------
- @ECHO "%ProgramFiles%\WinRAR\WinRAR.exe" ou
- @ECHO "%ProgramFiles(x86)%\WinRAR\WinRAR.exe"
- @ECHO ===============================================================================
- EXIT
- )
- ::===============================================================================
- :: INICIANDO PROCESSO DE BACKUP
- ::===============================================================================
- :: CRIANDO LOG
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt DEL %LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt /Q
- @ECHO ===============================================================================
- @ECHO.
- @ECHO BACKUP INICIALIZADO EM: %date:~0,2%/%date:~3,2%/%date:~-4,4% as %time:~0,-3%
- @ECHO.
- @ECHO ===============================================================================
- @(
- @ECHO Olá você está recebendo um LOG de backup, verifique se o mesmo contém erros.
- @ECHO Este LOG é referente à empresa: %empresa% e do banco de dados: %banco% ver. %versao%,
- @ECHO Foi gerado %semana% dia %dia%/%mes%/%ano% às %hora%h.
- @ECHO O arquivo foi gerado na pasta: %LocalBkp% no Servidor: %Servidor%.
- @ECHO E É DE RESPONSABILIDADE DO CLIENTE PROVIDENCIAR A CÓPIA PARA UM LOCAL SEGURO.
- )>>%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt
- @(
- @ECHO.
- @ECHO ===============================================================================
- @ECHO.
- @ECHO BACKUP INICIALIZADO EM: %date:~0,2%/%date:~3,2%/%date:~-4,4% as %time:~0,-3%
- @ECHO.
- @ECHO ===============================================================================
- )>>%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt
- ::-------------------------------------------------------------------------------
- ::VERIFICANDO E ELEMINANDO ARQUIVOS .BAK ANTIGOS
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar ( goto :ta
- ) ELSE IF NOT EXIST %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar (
- set final=1
- goto :tu
- )
- :ta
- FOR %%a in (%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar) do (set /a tamanho_Rar=%%~za )
- IF EXIST %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H_old.rar (
- DEL %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H_old.rar /Q
- )
- REN %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar %empresa%_%banco%_%versao%_%semana%_%hora%H_old.rar
- :tu
- ::-------------------------------------------------------------------------------
- ::GERANDO SCRIPT SQL
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalBkp%\script.sql ( DEL %LocalBkp%\script.sql)
- IF EXIST %LocalBkp%\verifica.sql ( DEL %LocalBkp%\verifica.sql)
- @ECHO Backup DataBase %banco% To Disk= "%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak" With NoFormat, Init, Skip, NoRewind, NoUnload, Stats = 10 >>%LocalBkp%\script.sql
- @ECHO RESTORE Verifyonly FROM DISK = N'%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak' >>%LocalBkp%\verifica.sql
- ::-------------------------------------------------------------------------------
- ::ACIONANDO DISPOSITIVO DE BACKUP
- ::-------------------------------------------------------------------------------
- SQLCMD -S %Servidor% -U sa -P %codigo% -i "%LocalBkp%\script.sql" >>%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt
- IF %ERRORLEVEL% EQU 1 goto :ERROLEVEL
- ::-------------------------------------------------------------------------------
- ::LIMPANTO ARQUIVOS TEMPORÁRIOS
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalBkp%\script.sql( DEL %LocalBkp%\script.sql /Q )
- ::-------------------------------------------------------------------------------
- ::VERIFICA SE O ARQUIVO ESTÁ COM HORA -1
- ::-------------------------------------------------------------------------------
- IF NOT EXIST %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak (
- SET /A (%hora% - 1)
- )
- ::-------------------------------------------------------------------------------
- :: VERIFICANDO A INTEGRIDADE DO ARQUIVO GERADO
- ::-------------------------------------------------------------------------------
- SQLCMD -S %Servidor% -U sa -P %codigo% -i "%LocalBkp%\verifica.sql" >> validade.txt
- FOR /F "eol=( tokens=1" %%f in (validade.txt) do (set validade=%%f)
- IF EXIST verifica.sql ( DEL verifica.sql /Q )
- IF EXIST validade.txt ( DEL validade.txt /Q )
- IF %validade% NEQ The (goto :Menor)
- ::-------------------------------------------------------------------------------
- ::COMPACTANDO ARQUIVOS
- ::-------------------------------------------------------------------------------
- CALL %local_rar% a "%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar" "%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak"
- CALL %local_rar% t "%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar"
- IF %ERRORLEVEL% EQU 1 goto :ERROLEVEL
- ::-------------------------------------------------------------------------------
- :: CHECANDO O TAMANHO DO ARQUIVO GERADO
- ::-------------------------------------------------------------------------------
- FOR %%a in (%LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.rar) do (set /a tamanho_SQL=%%~za)
- ::-------------------------------------------------------------------------------
- :: ELIMINANDO ARQUIVOS .BAK
- ::-------------------------------------------------------------------------------
- IF EXIST %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak ( DEL %LocalBkp%\%empresa%_%banco%_%versao%_%semana%_%hora%H.Bak /Q )
- :FIM
- ::-------------------------------------------------------------------------------
- :: REGISTRANDO INFORMAÇÕES NO LOG
- ::-------------------------------------------------------------------------------
- @(
- @ECHO ===============================================================================
- @ECHO TAMANHO DO ARQUIVO SQL GERADO E COMPACTADO = %tamanho_SQL% bytes
- @ECHO BACKUP FINALIZADO EM: %date:~0,2%/%date:~3,2%/%date:~-4,4% as %time:~0,-3%
- @ECHO.
- @ECHO ===============================================================================
- )>>%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt
- @ECHO.
- @ECHO TAMANHO DO ARQUIVO SQL GERADO E COMPACTADO = %tamanho_SQL% bytes
- @ECHO BACKUP FINALIZADO EM: %date:~0,2%/%date:~3,2%/%date:~-4,4% as %time:~0,-3%
- @ECHO.
- @ECHO ===============================================================================
- :mail
- ::===============================================================================
- ::CONFIGURAÇÕES PARA ENVIO DE E-MAIL
- ::-------------------------------------------------------------------------------
- ::Configuracoes do e-mail
- ::-------------------------------------------------------------------------------
- set remetente=backup@blueti.com.br
- set destinatario=%mail%
- set titulo=Backup %Banco%, %empresa% %semana%, %dia%/%mes%/%ano% …s %hora%h
- set SMTP=smtp.blueti.com.br
- ::-------------------------------------------------------------------------------
- ::Configuraçõe de autenticacao smtp
- ::-------------------------------------------------------------------------------
- set usuario=backup@blueti.com.br
- set senha=BlueTI001
- ::-------------------------------------------------------------------------------
- ::Configurações de envio do email
- ::-------------------------------------------------------------------------------
- @ECHO.
- @ECHO ENVIANDO RELATORIO POR E-MAIL
- @ECHO.
- @ECHO ===============================================================================
- sendEmail.exe -f %remetente% -t %destinatario% -u %titulo% -o message-file=%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt -s %SMTP%:587 -xu %usuario% -xp %senha%
- exit
- ::===============================================================================
- :ERROLEVEL
- ::===============================================================================
- ::CONFIGURAÇÕES PARA ENVIO DE E-MAIL
- ::-------------------------------------------------------------------------------
- ::Configuracoes do e-mail
- ::-------------------------------------------------------------------------------
- set remetente=backup@blueti.com.br
- set destinatario=%mail%
- set titulo=BACKUP %Banco%, %empresa% ERRO AO GERAR %dia%/%mes%/%ano% …s %hora%h
- set SMTP=smtp.blueti.com.br
- ::-------------------------------------------------------------------------------
- ::Configuraçõe de autenticacao smtp
- ::-------------------------------------------------------------------------------
- set usuario=backup@blueti.com.br
- set senha= BlueTI001
- ::-------------------------------------------------------------------------------
- ::Configurações de envio do email
- ::-------------------------------------------------------------------------------
- @ECHO.
- @ECHO ENVIANDO RELATORIO POR E-MAIL
- @ECHO.
- @ECHO ===============================================================================
- sendEmail.exe -f %remetente% -t %destinatario% -u %titulo% -o message-file=%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt -s %SMTP%:587 -xu %usuario% -xp %senha%
- EXIT
- :Menor
- @(
- @ECHO ===============================================================================
- @ECHO ANTECAO! BACKUP NAO GERADO! FOI FEITA UMA VERIFICACAO
- @ECHO DE INTEGRIDADE NO ARQUIVO GERADO E O MESMO NAO FOI APROVADO
- @ECHO. POR FAVRO ENTRE EM CONTATO COM O SUPORTE
- @ECHO ===============================================================================
- )>>%LocalLog%\%empresa%_%banco%_%versao%_%semana%_%hora%H.txt
- @ECHO ===============================================================================
- @ECHO ANTECAO! BACKUP NAO GERADO! FOI FEITA UMA VERIFICACAO
- @ECHO DE INTEGRIDADE NO ARQUIVO GERADO E O MESMO NAO FOI APROVADO
- @ECHO. POR FAVRO ENTRE EM CONTATO COM O SUPORTE
- @ECHO ===============================================================================
- goto :ERROLEVEL
- ::===============================================================================
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement