sexta-feira, 22 de maio de 2015

Dicas Robocopy

01 maio, 2010

Robocopy - Excelente Ferramenta de Backup

Uma das dificuldades crescentes desde o início da era dos PCs refere-se à organização/backup dos arquivos. Uma simples consulta aos leitores, realizada pelo Augusto, no Efetividade.net, revela que as inúmeras técnicas, aliada a várias ferramentas ainda são muito pessoais e variam conforme o gosto do seus usuários.

Esse resultado é compreensível, principalmente se lembrarmos que nem todos trabalham da mesma maneira. No entanto, pude perceber que muitos fazem backup dos seus arquivos (o que já é excelente, pois demonstra responsabilidade e conscientização - conheço pessoas que perderam horas e até anos de trabalho por não fazerem backup regular) e utilizam diversas ferramentas, como o Cobian Backup, o RSync, o próprio Windows Explorer (simples, mas funciona - às vezes), o TeraCopy, o Time Machine entre outros.

Assim como eles, eu também preciso fazer backup de vez em quando e uso há muito tempo uma ferramenta gratuita disponibilizada pela Microsoft, o Robocopy. Neste artigo eu vou apresentar essa ferramenta e disponibilizar os comandos que já me economizaram muitas horas!


Robocopy:

O Robocopy (Robust File Copy) é uma ferramenta de linha de comando gratuita, incluída no pacote de ferramentas Resource Kit do Windows Server 2003, disponível para download no site da Microsoft. Ele permite copiar diretórios e subdiretórios com mais segurança, de maneira mais rápida e prática.

Não é esse, mas é tão violento quanto!

A versão que eu utilizo é a XP010 e atualmente ele pode ser encontrado no Windows Vista na versão XP027. Mas afinal, o que esse tal de Robocopy tem que o xcopy não tem? O Manual é bem detalhado e acompanha o kit, mas eu posso resumir o que eu mais uso:
  • Grava log da cópia;
  • Exibe na tela o progresso;
  • Se já existir um arquivo igual, ignora a cópia;
  • Copia arquivos que possuem nomes/nomes de subdiretórios muito extensos e não podem ser copiados pelo Windows Explorer;
  • Copia os diretórios e subdiretórios;
  • Funciona em batch, portanto requer mínima interação humana;
  • Não precisa ser instalado no micro, pode simplesmente ser copiado para uma pasta;
  • Pode ser usado juntamente com o Agendador de Tarefas do Windows.
E tudo isso pode ser feito com uma linha de comando. Para quem gosta de interfaces gráficas, foi desenvolvido uma GUI para o robocopy - eu particularmente prefiro a linha de comando.


Scripts:

Para facilitar a operação, eu criei alguns scripts com os parâmetros do Robocopy para cada operação. Normalmente, levo comigo no pendrive uma pasta com os seguintes arquivos:
  • copyx.bat: arquivo batch contendo o comando para copiar diretórios;
  • movex.bat: arquivo batch contendo o comando para mover diretórios;
  • robocopy.doc: a documentação completa da ferramenta (em inglês - para qualquer eventual dúvida);
  • robocopy.exe: arquivo executável do Robocopy.
  • syncx.bat: arquivo batch contendo o comando para espelhar diretórios.
Abaixo segue o conteúdo dos scripts:

  • copyx.bat (copia diretórios, sobrescreve arquivos - caso já existam e tenham o mesmo nome - e, se houver diretórios/arquivos extras no destino, preserva):

robocopy %1 %2 /E /ZB /COPY:DAT /R:0 /W:0 /V /ETA /LOG:copyx.log /TEE

  • movex.bat (copia diretórios, deleta os originais após a cópia, sobrescreve arquivos - caso já existam e tenham o mesmo nome - e, se houver diretórios/arquivos extras no destino, preserva):

robocopy %1 %2 /E /ZB /MOVE /R:0 /W:0 /V /ETA /LOG:movex.log /TEE

  • syncx.bat (copia diretórios, sobrescreve arquivos - caso já existam e tenham o mesmo nome - e deleta qualquer arquivo/diretório extra que houver no destino):

robocopy %1 %2 /E /MIR /ZB /COPY:DAT /R:0 /W:0 /V /ETA /LOG:syncx.log /TEE

Esses parâmetros eu usei do artigo publicado pelo Analista de Suporte Paulo Sant'anna e aqui cabe um alerta:

NÃO ME RESPONSABILIZO PELO USO INDEVIDO DOS SCRIPTS!

Cuidado ao usarem os parâmetros, pois qualquer um deles pode sobrescrever arquivos/diretórios (no caso do syncx, como ele faz mirroring, pode deletar diretórios inteiros também!). Abaixo segue uma breve descrição dos parâmetros usados pelos scripts - recomendo ler o manual do robocopy antes do uso para adequá-los às suas necessidades:
  • /E - Copia todos os subdiretórios (incluindo os vazios);
  • /ZB - Tenta copiar os arquivos no modo restartable, porem se ocorrer falha com o erro "Accesso Negado", muda automaticamente para o modo Backup;
  • /COPY:DATO - Copia as seguintes informacoes do arquivos [D - Dados; A - Atributos; T - Timestamps; O - Proprietário] - No meu caso eu não copio as permissões dos arquivos, mas podem ser copiadas, se necessário;
  • /MOVE - Move os arquivos e diretórios (ou seja, deleta os arquivos e diretórios originais depois de copiados);
  • /MIR - Espelha todo um diretorio;
  • /R:0 - Especifica o numero de tentativas ao falhar a primeira copia;
  • /w:0 - Especifica o tempo de espera entre as tentativas;
  • /V - Produz saída textual (incluindo arquivos ignorados);
  • /ETA - Mostra o tempo estimado para completar a cópia dos arquivos;
  • /LOG:arquivo.log - Redireciona a saída para o arquivo de log especificado, sobrescrevendo o mesmo se já existir;
    /TEE - Mostra saída na janela do console, e adicionalmente direciona a mesma para o arquivo de log especificado no /LOG ou /LOG+.


Procedimento:

A utilização dos scripts é simples. Se quiser copiar diretórios, use o copyx. Se quiser mover diretórios, use o movex. O syncx espelha o diretório de origem no diretório de destino. Veja abaixo um exemplo de funcionamento para backup da pasta de perfil de um usuário:

Aqui, iremos copiar a pasta “C:\Documents and Settings\Marcus” para a pasta “C:\Backup”. Obs.: Recomendo que a pasta de destino já esteja criada antes de iniciar a cópia.

1) No prompt de comando, entre na pasta onde encontra-se o robocopy e o batch (Ex.: Se caso estiver em um pen drive, J:\Robocopy\).

2) Digite: copyx "C:\Documents and Settings\Marcus" "C:\Backup Marcus" e aperte enter;



3) O robocopy irá copiar os arquivos, exibir um progresso na tela do prompt, gravar um arquivo de log na pasta do robocopy com o nome copyx.log e exibir um resumo ao final da operação, conforme a tela abaixo;



4) Pronto, o backup foi realizado e você tem um log dos arquivos copiados.


Conclusão:

Já utilizei várias vezes o Robocopy e funcionou perfeitamente em todas, e a sua principal vantagem é a simplicidade de uso, aliada à rapizez e segurança. Lembra muito a ferramenta do Linux RSync.

Observações:
  • O backup também pode ser realizado na rede, mas é recomendável mapear a pasta de destino no micro que está executando a operação para facilitar o trabalho;
  • É recomendável verificar se as permissões dos usuários estão corretas ao final da operação. Pode ser necessário definir na pasta de destino a permissão de acesso ao usuário novamente.

Fontes:

Fonte: Martins Consultoria
http://www.martins.eti.br/2010/05/robocopy-excelente-ferramenta-de-backup.html

Nenhum comentário: