RoboCopy
Ir para navegação
Ir para pesquisar
Essa é uma boa ferramenta para cópia, backup e sincronização de arquivos no Windows. Podemos compará-la ao rsync do Linux.
Comandos
Comando de sincronização mais simples:
robocopy C:\ E:\ /MIR /SEC
Opções
- /MIR
- - Essa opção é para a sincronização mais completa. É a abreviação das opções /E e /PURGE, as quais copiam pastas e subpastas mesmo se estiverem vazias e apagam no destino os arquivos que não mais existem na origem, respectivamente.
- /SEC
- - Mantem permissões especiais dos arquivos e pastas.
- /R:?
- - Se tiver problemas de permissão com um arquivo, tentará 1 milhão de vezes por padrão. Com essa opção podemos configurar isso. /R:1 tentará apenas uma vez.
- /W:?
- - Assim como a opção /R, o /W define o timeout entre cada tentativa de cópia. Ex: /W:1 vai esperar 1 segundo e tentar de novo.
- /L
- - Esse opção sempre deve ser usada antes de colocar o comando em produção. Ela simula as ações, mas sem mexer em nada. Acompanhe os logs para ver se ficou tudo certo.
- /XD
- - Opção bem útil. Com ela definimos exceções de sincronização. Ex:
robocopy C: E:\ /MIR /XD C:\dir1
Isso vai sincronizar tudo que tem na unidade C:\ com exceção da pasta "dir1".
Tratamento de Erros
O Robocopy não usa o retorno padrão (0 - OK, 1 - erro). É importante saber desse detalhe ao fazer um tratamento de erros em um script, por exemplo. Tabela de retornos do Robocopy:
0 - Nenhum erro ocorreu e nenhuma cópia foi feita. 1 - Um ou mais arquivos foram copiados com sucesso. 2 - Nenhum arquivo foi copiado, arquivos extras foram detectados. 4 - Alguns arquivos com diferença foram encontrados, analisar retorno do log. 8 - Ocorreu erro ao copiar alguns arquivos. 16 - Nenhum arquivo foi copiado.
Obs.: pode ocorrer de algum erro ser a combinação de dois erros. (Erro 5 = Erro 4 + Erro 1)
Referências
- http://blogs.technet.com/b/filecab/archive/2008/07/31/robocopy-mir-switch-mirroring-file-permissions.aspx
- [1]
Erro com Cópia por Agendamento
O agendamento de tarefas agendadas não executa um .bat que aponte para unidades mapeadas. Se esse for o seu caso, informe o caminho inteiro da unidade a ser copiada e o destino.