Sei sulla pagina 1di 3

Dicas de uso sobre a ferramenta Robocopy

Sempre que preciso copiar vários arquivos (ou arquivos enormes) entre partições, HD
externo ou pastas compartilhadas em rede eu uso o Robocopy. Ele está disponível desde
o Resource Kit do Windows NT e nativamente desde o Windows Vista / Server 2008 e
posteriores.

Por padrão o Robocopy é uma ferramenta de sincronismo de pastas, isto é, se um


determinado arquivo do ponto A (origem) já existir no ponto B (destino) ele não será
copiado novamente (a menos que o arquivo do ponto A sofra alguma modificação).
Portanto também é uma interessante forma de backup.

O propósito desse artigo é demonstrar o uso do robocopy em dois cenários que encontro
com facilidade em ambiente corporativo:

 Replicação de arquivos/pastas quando temos um link lento/instável entre a


origem e o destino
 Arquivar (mover) arquivos antigos de um file server para um HD USB (ou para
outro local)

Mesmo se você já for usuário do Robocopy vale a pena consultar a documentação


recente para conhecer as novas funcionalidades.

Para as dicas abaixo eu estou considerando alguns recursos disponíveis no Robocopy


que vem no Windows 7 / Windows Server 2008 R2 (alguns parâmetros podem não
funcionar em versões anteriores):

Cenário 1: Replicação de arquivos/pastas quando temos um link lento/instável


entre a origem e o destino

Se você precisa replicar todo o conteúdo de uma determinada pasta compartilhada em


rede (ex.: \\SERVIDOR\Conteudo\Dados) para o seu HD USB (ex.: E:\Download)
através de um link lento, ou não muito confiável, minha sugestão é executar o
Robocopy a partir de um arquivo .CMD, possibilitando sincronizar todo o conteúdo
mesmo que durante o processo de cópia ocorra algum problema com a rede.

Crie um arquivo Download.CMD a partir do bloco de notas com o seguinte conteúdo:

:1
ROBOCOPY “\\SERVIDOR\Conteudo\Dados” “E:\Download\Dados”
/MIR /MT:10 /Z /R:2 /W:2
goto 1
Também se pode abrir o CMD e digitar:

ROBOCOPY “\\SERVIDOR\Conteudo\Dados” “E:\Download\Dados”


/MIR /MT:10 /Z /R:2 /W:2

A única utilidade desse arquivo .CMD é executar o Robocopy em loop para recomeçar
de onde parar o processo de cópia (argumento /Z) se houver problemas com a rede ou
com algum dos PCs/Servidores. Se houver falha na cópia de algum arquivo duas
tentativas serão realizadas (parâmetro /R:2), com um intervalo de 2 segundos entre elas
(parâmetro /W:2). O parâmetro /MT:10 (novidade) permite cópia multi-thread (quem
usa RichCopy adora isso) de 10 arquivos em paralelo (e não apenas um arquivo por
vez).

Cuidado com o parâmetro /MIR, pois ele espelha todo o conteúdo, inclusive
pastas/subpastas. Se na pasta origem, por exemplo, você tem 10 arquivos a pasta destino
terá os mesmo 10 arquivos. Se você copiar algum arquivo extra no destino e rodar o
comando novamente esse arquivo extra será apagado (porque não existe na origem). Se
você quiser apenas uma cópia “incremental”, mantendo os atuais arquivos na pasta
destino substitua o /MIR pelo /E.

Parâmetros extras:

 /XF *.mp3 – ignora arquivos com extensão .MP3


 /XD temp – ignora pastas com o nome “temp”
 /COPYALL – copia todos os atributos dos arquivos como data/hora,
segurança…

Dica extra: Quer controlar a data/horário de início do robocopy, além de duração


máxima de sua execução (por exemplo, agendar um download/upload apenas em
horário não comercial)? Use o Agendador de Tarefas do Windows (Task Scheduler).

Cenário 2: Arquivar (mover) arquivos antigos de um file server para um HD USB


(ou para outro local)

Suponha que temos a necessidade de arquivar (mover) todos os arquivos com mais de 3
anos de uma pasta \\SERVIDOR\Docs para a pasta E:\Docs. A sintaxe seria:

ROBOCOPY “\\SERVIDOR\Docs” “E:\Docs” /MOVE /E /R:2 /W:2


/MINAGE:20080309 /LOG+:”E:\log.txt” /TEE

Esse comando vai mover (/MOVE) todos os arquivos, inclusive pastas e subpastas (/E),
exceto os arquivos mais novos que 09/Março/2008 (o parâmetro /MINAGE:20080309
move os mais antigos, mantendo os mais novos), registrando todo o processo em um
arquivo de log incremental (/LOG+:”E:\log.txt”). O parâmetro /TEE permite
acompanhar no prompt de comandos o andamento do todo o processo de cópia
(importante quando usamos algum parâmetro de log).
Como essa operação envolve a operação “mover” (copia para o destino e apaga na
origem) eu recomendo incluir o parâmetro /L para simular o processo. Quando você
estiver ciente de que a sintaxe está correta remova o parâmetro /L.

Para conhecer todos os parâmetros do Robocopy digite no prompt de comandos


ROBOCOPY /? e bom divertimento!

Para conhecer outras ferramentas de linha de comando do Windows acesse a


documentação gratuita http://bit.ly/wincmds

Potrebbero piacerti anche