sexta-feira, 9 de dezembro de 2016

Copiando dados com o Robocopy

Conheça nesse artigo o utilitário Robust File Copy, mais conhecido como Robocopy que é uma ferramenta de linha de comando que realiza cópia de dados de uma forma segura e eficiente.

 

Vamos conhecer o utilitário Robust File Copy, mais conhecido como Robocopy que é uma ferramenta de linha de comando que realiza cópia de dados de uma forma segura e eficiente.

Aqueles que trabalham com administração de redes e servidores de vez em quando realizam a migração de dados entre servidores, seja na ocasião de uma máquina nova ou mesmo na emergência devido a fato do servidor antigo estar com problemas. Independente da situação a transferência de dados entre os servidores sempre será necessária e esta tarefa se torna um tanto penosa quando não se tem uma ferramenta adequada. Muitos ainda utilizam a cópia manual dos dados, que além de ser mais lenta, não retorna nenhum log de verificação da cópia realizada.

Podem ser utilizados softwares e utilitários de backup, sendo que neste caso primeiro é feito o backup em alguma mídia (fita, CD, DVD...) dos dados do servidor antigo e depois os mesmos são restaurados no servidor novo. Trata-se de uma opção mais demorada.

Temos uma boa opção chamada Robocopy, que abordaremos neste artigo, que realiza a cópia de diretórios e arquivos de uma maneira rápida, simples e funcional, transferindo inclusive os atributos e permissões NTFS originais dos dados copiados, podendo gerar logs demonstrativos com todas as informações sobre a cópia e com uma ótima performance mesmo quando se trata de uma grande massa de dados.

O Robocopy atualmente na versão XP010 é uma ferramenta de linha de comando, gratuita disponível desde o Windows NT e que está incluída no pacote de ferramentas Resource Kit do Windows Server 2003, que pode ser baixado em http://www.microsoft.com/downloads/details.aspx?familyid=9D467A69-57FF-4AE7-96EE-B18C4790CFFD&displaylang=en. Esta versão pode ser utilizada nas versões 2000, XP, 2003 e Vista do Windows. O arquivo executável possui apenas 78 KB e no diretório onde estão as ferramentas do Resource Kit (caso seja mantido o padrão da instalação, C:\Arquivos de programas\Windows Resource Kits\Tools), encontramos o arquivo robocopy.doc, contendo a descrição da ferramenta e as diversas opções de sintaxe que o robocopy possui.

Outra forma para verificar a sintaxe do comando Robocopy, seria digitando o comando com a opção /?, como mostra a Figura 1.

image
Figura 1. Comando Robocopy

Opções de sintaxe para o comando Robocopy

Um cenário bem interessante para utilização do Robocopy é a migração de dados entre dois servidores de arquivos. Sabemos que neste caso além da cópia é necessária a manutenção dos atributos e permissões dos dados que serão migrados. Podem ser criados arquivos de lotes com chamadas para o Robocopy e sua sintaxe com o intuito de otimizar a tarefa ou até mesmo programar um agendamento.

A sintaxe do comando é a seguinte:

Robocopy origem destino [opções do comando]

 

 
Exemplos de utilização do comando

Vamos ver alguns exemplos de utilização do Robocopy.

  • Cópia do diretório Scripts armazenado na unidade C para o diretório Backup na unidade D na mesma máquina como mostra a Figura 2:
    robocopy.exe c:\scripts d:\backup

     

    image
    Figura 2. Cópia do diretório Scripts

  • Cópia do mesmo diretório Scripts e dos sub-diretórios (opção /e) para o diretório Backup, como mostra a Figura 3:
    robocopy c:\scripts d:\backup /e
     
    image
    Figura 3. Cópia para o diretório Backup
  • Cópia do dados armazenados no compartilhamento da pasta P1 no Servidor1 Serv1 para o Servidor 2 Serv2:
    robocopy \\Serv1\P1\ \\Serv2\P1\ /E /ZB /COPYALL /R:0 /W:0 /V /NP /ETA /LOG:c:\teste-robocopy.log

    Vejam as opções do comando utilizadas:

  • /E – Cópia dos sub-diretórios
  • /ZB – Modo Backup
  • /COPYALL – Cópia de todas as informações do arquivo
  • /R:0 - não repete a cópia em caso de falha
  • /W:0 - por não repetir a cópia em caso de falha também não há tempo de espera entre as repetições
  • /V - Exibe os arquivos que por alguma razão não foram copiados
  • /NP - Não exibe o progresso da cópia
  • /ETA - Exibe o tempo estimado que a cópia dos dados levará
  • /LOG: - Especifica o local onde o log será armazenado

     

    Concluindo

    Abordamos neste artigo os conceitos para utilização do comando Robocopy que não deve faltar entre as ferramentas utilizadas por administradores e analista de redes Windows. Vale citar que o utilitário permite uma série de opções que não foram abordadas aqui, além de outros cenários e modos de utilização, mas para um aprofundamento vale a pena a leitura do arquivo doc que acompanha o Robocopy.

    Lista de comandos:
    ——————————————————————————-
    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 Subdiretórios, exceto os que estiverem vazios.
    /E - copiar Subdiretórios, incluindo os que estiverem vazios.
    /LEV:n - copiar apenas os primeiros n níveis da árvore de diretó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 Diretó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/diretórios de destino que já não existam na origem.
    /MIR - Espelhar uma árvore de diretórios (equivalente a /E em conjunto com /PURGE).
    /MOV - Mover ficheiros (eliminar da origem depois de copiar).
    /MOVE - MOVER ficheiros E diretó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 diretórios e ficheiros de comprimento zero apenas.
    /FAT - criar ficheiros de destino através de nomes de ficheiros FAT 8.3 apenas.
    /256 - desativar 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.
    Redirecionar os resultados através da opção /LOG para um melhor desempenho.
    ::
    :: Opções de Seleçã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 [diretórios]… - Excluir Diretó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 diretórios suplementares.
    /XL - Excluir ficheiros e diretórios isolados.
    /IS - incluir os mesmos ficheiros.
    /IT - incluir ficheiros otimizados.
    /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 Diretó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 selecionados.
    /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 Diretórios – não registar nomes de diretórios.
    /NP - Sem Progresso – não apresentar percentagem copiada.
    /ETA - mostrar Hora Estimada de Receçã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 Diretório de Origem.
    /NODD - NÃO foi especificado um Diretório de Destino.
    /IF - Incluir os seguintes Ficheiros.

    Fonte: http://bit.ly/bJysCc

  • 2 comentários :

    1. Boa tarde Estou enfrentando problemas de acesso negado para arquivos de troca pela rede. cod 005. já verificquei as permissões mas nada funcioan , quando tento copiar dentro do proprio pc da unidade C para a K por exemplo funciona na boa porém usando a rede ára um storage da sempre acesso negado , alguém poderia tenar me dar uma ajuda gande abraço

      ResponderEliminar
    2. Boa noite, pro PC aqui em casa funcionou com este comando ROBOCOPY e /ZB - que utiliza o modo reiniciável; se o acesso for negado, utiliza o modo de Cópia de Segurança.

      ResponderEliminar