Script de sincronização e backup para Windows .vbs e .bat utilizando rsync

Para utilização/instalação do Rsync no windows procure documentações na internet como esta abaixo:
http://www.vivaolinux.com.br/artigo/Utilizando-o-RSYNC-para-fazer-backups-de-servidores-e-estacoes-Windows?pagina=1

1 – Instalação da biblioteca do rsync no windows e certificação de que a mesma funciona corretamente.
2 – Realizar as relações de confiança para servidores linux a fim da não solicitação de senhas.
3 – Utilizar a ferramenta microsoft de agendamento de tarefas.

sincroniza.bat => sincronizando dois servidores. Arquivos mais novos sobreescrevem os mais antigos em ambos os sentidos. Mapeamento de um server no outro. Usuário (manutencao) deve ser administrator, com os compartilhamento liberado para ele.

set data=%date:/=-%
net use j: \\servidor_a\EMPRESAExport senhaeh1234 /user:manutencao

echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| Sincronizacao realizada em %data% as %time%  |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "      ||||||| Arquivos abaixo sincronizados |||||||      " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

C:\Program Files\cwRsync\cwrsync.cmd
echo "| ENVIANDO DO SERVER_A PARA SERVER_B |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
"C:\Program Files (x86)\cwRsync\bin\rsync.exe" -uvha --recursive "/cygdrive/j/" "/cygdrive/c/inetpub/EMPRESAExport" >> "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ENVIANDO DO SERVER_B PARA SERVER_A |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
"C:\Program Files (x86)\cwRsync\bin\rsync.exe" -uvha  --recursive "/cygdrive/c/inetpub/EMPRESAExport/" "/cygdrive/j" >> "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| Sincronizacao finalizada em %data% as %time% |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo "       ==============================================================================================       "   >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"        
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Inetpub EMPRESA/_%data%.txt"

backup.bat => faz backup de um diretório para outro

set data=%date:/=-%
set dia=%date:~0,2%

echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| Sincronizacao realizada em %data% as %time%  |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |" >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "      ||||||| Arquivos abaixo sincronizados |||||||      " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

C:\Program Files\cwRsync\cwrsync.cmd
rsync -vh --recursive --delete --exclude "*.txt" root@192.168.100.154:/opt/apache/htdocs/ "/cygdrive/c/BACKUP_APLICACOES_CAND/dias/%dia%" >> "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

echo " " >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| Sincronizacao finalizada em %data% as %time% |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"
echo "| ------ ------ ------ ------ ------ ------ ----------- |"  >>  "C:\LOGS\Sincronizacao Backup Candidato/_%data%.txt"

Apaga_sent.vbs => apaga arquivos recursivamente que contem no nome a expressão “eam-new”

strPasta="C:\Program Files (x86)\Persits Software\AspEmail\Queue\Sent"
set FSo = CreateObject("Scripting.FileSystemObject")
Apagar_Arquivos(strPasta)

Sub Apagar_Arquivos(Pasta)
set folder = FSO.getFolder (Pasta)

if folder.Subfolders.count > 0 then
for each SubFolder in folder.Subfolders
Apagar_Arquivos SubFolder
next
end if

for each file in folder.files
set objFile = FSO.GetFile(file)
if FSO.GetExtensionName(objFile) = "eam-new" then
File.delete
end if
next
end sub

Apaga_logs.vbs => apaga registros dentro de um diretório recursivamente. 31 dias de retenção.

pasta = "C:\LOGS"
Apagar_Arquivos pasta

Sub Apagar_Arquivos(pasta)

Set objFSO = CreateObject("Scripting.FileSystemObject")
'aqui você informa o caminho da pasta

set folder = objFSO.getFolder (Pasta)

if folder.Subfolders.count > 0 then
  for each SubFolder in folder.Subfolders
   'AQUI ELE VAI PROCURAR PASTAS E SUBPASTAS.
   Apagar_Arquivos SubFolder
  next
end if


for each file in folder.files
   'AQUI DEFINE A QUANTIDADE DE DIAS.
   if DateDiff("d",file.DateLastModified,now) > 31 Then
      objFSO.DeleteFile(file.path)
   End if
next

End sub

Exemplo de uma tarefa agendada no windows para rodar o script de backup uma vez por dia as 23hrs:

Imagem 001

Imagem 005

Imagem 004

Imagem 003

Imagem 002

Deixe um comentário