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 image](https://lh3.googleusercontent.com/-dUIDqOjnyS0/WEqUI41xQbI/AAAAAAAAD_o/eVAPrY-J6Po/image_thumb%25255B2%25255D.png?imgmax=800)
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 image](https://lh3.googleusercontent.com/-AClgK560Wso/WEqVUrHg94I/AAAAAAAAD_w/Vkc_JImcGk0/image_thumb%25255B4%25255D.png?imgmax=800)
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 image](https://lh3.googleusercontent.com/-ktO7SQep1h0/WEqVVmTDGGI/AAAAAAAAD_4/EtwEckICEPc/image_thumb%25255B6%25255D.png?imgmax=800)
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