Backups com Robocopy Windows Server 2003

Uma das grandes necessidades que temos no dia a dia é realizar cópias automatizadas de arquivos entre servidor. E para lidarmos com esta simples tarefa mas de grande valia vamos implementar um script (.bat) no Windows Server 2003 para realizar a cópia de alguns arquivos e compactá-los para poder enviar em outras localidades e garantirmos assim uma melhor integridade destes backups.

A ferramenta principal que iremos utilizar é o ROBOCOPY – Robust File Copy do Windows, uma ferramenta de grande poder em linha de comando que fará de forma mais especializada o nosso bom e velho Ctrl+c / Ctrl+v.

** O programa robocopy.exe é uma ferramenta que faz parte do Resource Kit da Microsoft para sistemas operacionais em plataforma windows (98, XP, 2000, 2003, etc). O Resource Kit é um conjunto de ferramentas para administradores de redes. ===— Clique aqui para baixar o Kit —===, ou diretamente do blog (clique aqui)

Executando o comando robocoby /? no prompt de comando temos uma visão do que podemos usar com o Robocopy.

Visão geral do Robocopy - Parte 1

Visão geral do Robocopy – Parte 1

Visão geral do Robocopy - Parte 2

Visão geral do Robocopy – Parte 2

 

Vejam as opções do comando utilizadas:
——————————————————————————-
ROBOCOPY:: Robust File Copy para Windows
——————————————————————————-
Utilização:: ROBOCOPY origem destino [ficheiro [ficheiro]…] [opções]
origem :: Directório de Origem (unidade:\caminho ou \\servidor\partilha\caminho).
destinatino :: Destination Dir (unidade:\caminho ou \\servidor\partilha\caminho).
ficheiro :: Ficheiro(s) a copiar (nomes/caracteres universais: a predefinição ‚ “*.*”).

———- Opções de cópia:
/S :: copiar Subdirectórios, excepto os que estiverem vazios.
/E :: copiar Subdirectórios, incluindo os que estiverem vazios.
/LEV:n :: copiar apenas os primeiros n níveis da árvore de directórios de origem.
/Z :: copiar ficheiros em modo reiniciável.
/B :: copiar ficheiros no modo de Cópia de Segurança.
/ZB :: utilizar o modo reiniciável; se o acesso for negado,
utilizar o modo de Cópia de Segurança.
/EFSRAW :: copiar todos os ficheiros encriptados em modo EFS RAW.
/COPY:sinalizadorescópia :: conteúdo a COPIAR para os ficheiros (predefinição: /COPY:DAT).
(sinalizadorescópia : D=Dados, A=Atributos, T=Carimbos de data/hora).
(S=Segurança=ACLs de NTFS, O=Informações do proprietário, U=Informações de auditoria).
/DCOPY:T :: COPIAR Carimbos de Data/Hora de Directórios.
/SEC :: copiar ficheiros com segurança (equivalente a /COPY:DATS).
/COPYALL :: COPIAR TODAS as informações dos ficheiros (equivalente a /COPY:DATSOU).
/NOCOPY :: NÇO COPIAR informações dos ficheiros (útil com o comando /PURGE).
/SECFIX :: CORRIGIR a segurança dos ficheiros em todos os ficheiros, mesmo os ficheiros ignorados.
/TIMFIX :: CORRIGIR datas/horas em todos os ficheiros, mesmo o ficheiros ignorados.
/PURGE :: eliminar ficheiros/directórios de destino que já não existam na origem.
/MIR :: Espelhar uma árvore de directórios (equivalente a /E em conjunto com /PURGE).
/MOV :: Mover ficheiros (eliminar da origem depois de copiar).
/MOVE :: MOVER ficheiros E directórios (eliminar da origem depois de copiar).
/A+:[RASHCNET] :: adicionar os Atributos especificados a ficheiros copiados.
/A-:[RASHCNET] :: remover os Atributos especificados dos ficheiros copiados.
/CREATE :: CRIAR árvore de directórios e ficheiros de comprimento zero apenas.
/FAT :: criar ficheiros de destino através de nomes de ficheiros FAT 8.3 apenas.
/256 :: desactivar suporte para caminhos muito longos (> 256 caracteres).
/MON:n :: MONITORIZAR origem; voltar a executar se forem apresentadas mais de n alterações.
/MOT:m :: MONITORIZAR origem; voltar a executar em m minutos, se houver alterações.
/RH:hhmm-hhmm :: Horas de Execução – alturas em que poderão ser iniciadas novas cópias.
/PF :: verificar horas de execução Ficheiro a Ficheiro (não por cada passagem).
/IPG:n :: Intervalo entre Pacotes (ms), para libertar largura de banda em linhas lentas.
/SL:: copiar hiperligações simbólicas em vez do destino.
/MT[:n] :: Criar cópias multithread com n threads (predefinição 8).
n tem de ser pelo menos 1 e não pode ser maior que 30.
Esta opção ‚ incompatível com as opções /IPG e /EFSRAW.
Redireccionar os resultados através da opção /LOG para um melhor desempenho.

—— Opções de Selecção de Ficheiros:
/A :: copiar apenas ficheiros que tenham o atributo Arquivo definido.
/M :: copiar apenas ficheiros que tenham o atributo Arquivo e repor o atributo.
/IA:[RASHCNETO] :: Incluir apenas ficheiros que tenham qualquer um dos Atributos especificados definido.
/XA:[RASHCNETO] :: Excluir ficheiros que tenham qualquer um dos Atributos especificados definido.
/XF file [ficheiro]… :: Excluir Ficheiros que coincidam com os nomes/caminhos/caracteres universais especificados.
/XD dirs [directórios]… :: Excluir Directórios que coincidam com os nomes/caminhos especificados.
/XC :: excluir ficheiros alterados.
/XN :: excluir ficheiros mais recentes.
/XO :: excluir ficheiros mais antigos.
/XX :: Excluir ficheiros e directórios suplementares.
/XL :: Excluir ficheiros e directórios isolados.
/IS :: incluir os mesmos ficheiros.
/IT :: incluir ficheiros optimizados.
/MAX:n :: Tamanho máximo de ficheiro – excluir ficheiros com um tamanho superior a n bytes.
/MIN:n :: Tamanho mínimo de ficheiro – excluir ficheiros com um tamanho inferior a n bytes.
/MAXAGE:n :: ANTIGUIDADE máxima de ficheiro – excluir ficheiros com mais de n dias/data.
/MINAGE:n :: ANTIGUIDADE mínima de ficheiro – excluir ficheiros com menos de n dias/data.
/MAXLAD:n :: Data Máxima do último Acesso – excluir ficheiros não utilizados desde n.
/MINLAD:n :: Data Mínima do último Acesso – excluir ficheiros utilizados desde n.
(Se n < 1900 então n = n dias, caso contrário n = data em formato AAAAMMDD).
/XJ :: excluir pontos de Junção (normalmente incluído por predefinição).
/FFT :: assumir Tempos de Ficheiros FAT (granulação de 2 segundos).
/DST :: compensar diferenças de tempo DST de uma hora.
/XJD :: excluir pontos de Junção para Directórios.
/XJF :: excluir pontos de Junção para Ficheiros.

——–: Opções de Repetição:
/R:n :: número de Tentativas em cópias falhadas: a predefinição ‚ de 1 milhão.
/W:n :: Tempo de espera entre tentativas: a predefinição ‚ de 30 segundos.
/REG :: Guardar /R:n e /W:n no Registo como predefinições.
/TBD :: espera para nomes de partilha A DEFINIR (erro de repetição 67).

——– Opções de Registo:
/L :: Listar apenas – não copiar, colocar carimbo de data/hora ou eliminar quaisquer ficheiros.
/X :: comunicar todos os ficheiros suplementares, não apenas os seleccionados.
/V :: produzir saída Verbosa, com apresentação dos ficheiros ignorados.
/TS :: incluir Carimbos de Data/Hora de ficheiros de origem na saída.
/FP :: incluir Nome de Caminho Completo na saída.
/BYTES :: imprimir tamanhos como bytes.
/NS :: Sem Tamanho – não registar tamanhos de ficheiros.
/NC :: Sem Classe – não registar classes de ficheiros.
/NFL :: Sem Lista de Ficheiros – não registar nomes de ficheiros.
/NDL :: Sem Lista de Directórios – não registar nomes de directórios.
/NP :: Sem Progresso – não apresentar percentagem copiada.
/ETA :: mostrar Hora Estimada de Recepção de ficheiros copiados.
/LOG:ficheiro :: enviar estado para ficheiro de REGISTO (substituir registo existente).
/LOG+:ficheiro :: enviar estado para ficheiro de REGISTO (acrescentar ao registo existente).
/UNILOG:ficheiro :: enviar estado para ficheiro de REGISTO como UNICODE (substituir registo existente).
/UNILOG+:ficheiro :: enviar estado para ficheiro de REGISTO como UNICODE (acrescentar ao registo existente).
/TEE :: enviar para a janela da consola e para o ficheiro de registo.
/NJH :: sem cabeçalho de tarefa.
/NJS :: sem resumo de tarefa.
/UNICODE :: emitir estado como UNICODE.

——– Opções de Tarefa:
/JOB:nometarefa :: tirar parâmetros do ficheiro da TAREFA especificado.
/SAVE:nometarefa :: GUARDAR parâmetros no ficheiro de tarefa especificado
/QUIT :: SAIR depois de processar a linha de comandos (para ver parâmetros).
/NOSD :: NÃO foi especificado um Directório de Origem.
/NODD :: NÃO foi especificado um Directório de Destino.
/IF :: Incluir os seguintes Ficheiros.

 

Basicamente a sintaxe do comando é a seguinte:

Robocopy origem destino [opções do comando]

Um exemplo simples que iremos criar é a realização de cópia de um arquivo que encontra-se no diretório de exemplo: C:\SIMA\Dados onde temos um arquivo FDB e após esta cópia iremos também executar uma cópia de um arquivo security do Firebird, ambos registrando um log.

Parte 1:  Copia de tudo que esta dentro do diretório  C:\SIMA\Dados e registra o log BackupBD.log

robocopy C:\SIMA\Dados  C:\BACKUP /E /ZB /COPYALL /R:0 /W:0 /V /NP /ETA /LOG:C:\BACKUP\BackupBD.log

Parte 2:  Cópia de todo aqrtuivo .fdb dentro do C:\SIMA\Firebird\Firebird-1-5 e registra o log BackupFIR.log

robocopy C:\SIMA\Firebird\Firebird-1-5  C:\BACKUP /a /zb /IF *.fdb /ZB /COPYALL /R:0 /W:0 /V /NP /ETA /LOG:C:\BACKUP\BackupFIR.log

Parte 3:  Vamos compactar todos os arquivos em um único arquivo em .rar  (Entenda melhor esta função no artigo:  Automatizando compactação por prompt no Windows Server )

“C:\Arquivos de programas\WinRAR\Rar.exe” a -agDD-MM-YYYY C:\BACKUP\Backup_Exemplo_  C:\BACKUP

 

Pronto realizado os backups  iremos enviar o arquivo para outro destino que pode ser Linux usando o passo a passo que fiz no artigo: SCP Linux – Cópia Segura de Arquivos no Windows para Linux

Robocopy-03

Robocopy-04

Bom espero ter ajudado

 

gde abç

 

2 Comments

  1. Leandro

    Obrigado pela contribuição. Funcionou perfeitamente!

    Reply
    1. Fernando Oliveira (Post author)

      Boa tarde Lenadro, tudo bem?
      Que bom que lhe ajudei com este post e obrigado pela visita no blog.
      abçs

      Reply

Deixe um comentário para Leandro Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *