Robôcópia
robocopy , ou "Robust File Copy", é um comando de replicação de diretório , disponível na linha de comando . Fazia parte do Windows Resource Kit e foi introduzido como um recurso padrão do Windows Vista e do Windows Server 2008 .
Características
Robocopy se destaca por superar os comandos incluídos no Windows (COPY e xcopy ) e também:
- Ele pode tolerar interrupções de rede e continuar copiando de onde parou (os arquivos incompletos são carimbados com a data 01/01/1980 e contêm um log de recuperação para que o Robocopy saiba onde continuar).
- Você pode copiar com êxito atributos, informações do proprietário, fluxos de dados alternativos (ADS), informações de auditoria e datas padrão, sem a necessidade de parâmetros de comando complicados.
- Você pode copiar a NTFS ACL , (adicionando o parâmetro /COPYALL /SEC) e declarar o "direito de backup" (/B) do Windows NT para que um administrador possa copiar um diretório inteiro, incluindo os arquivos cuja leitura é negada a o administrador.
- Persistência por padrão, com um número programável de tentativas automáticas se um arquivo não puder ser acessado.
- Possui um modo "espelho", que mantém a estrutura da árvore sincronizada, excluindo arquivos do destino, opcionalmente, caso não estejam mais na origem.
- Ele pode copiar grandes quantidades de arquivos que o utilitário XCOPY não conseguiria fazer.
- Possui um indicador de progresso na linha de comando que é atualizado continuamente.
- Você pode copiar arquivos e pastas com nomes longos que excedam 256 caracteres - até um máximo teórico de 32.000 - sem erros. [ 1 ]
- Suporta cópia multithread (somente Windows 7). [ 2 ]
Em particular, o Robocopy não pode copiar arquivos abertos em uso por outros usuários ou aplicativos. O chamado "modo de backup" é um privilégio administrativo que permite que o Robocopy substitua as configurações de permissão (especificamente, aquelas na
ACL NTFS ) para a missão de backup. O subsistema Windows Volume Shadow Copy é o único que pode copiar arquivos abertos enquanto estão em uso. O Robocopy não implementa o acesso a este serviço, reduzindo sua utilidade como utilitário de backup para volumes em uso. No entanto, você pode usar os utilitários VSHADOWou DISKSHADOW(incluídos no Windows Server 2008 ) para criar um instantâneo de um volume do qual pode ser feito backup usando o Robocopy.
Além disso, por design, a versão original do Robocopy não é capaz de replicar atributos de segurança de arquivos cujas permissões foram alteradas após a replicação inicial. [ 3 ] Este comportamento foi corrigido nas versões Windows 2008 e Vista do Robocopy. Isso significa que o Robocopy não se comporta da mesma forma entre plataformas diferentes. [ 4 ]
A interface
Embora o Robocopy em si seja uma ferramenta de linha de comando, o Microsoft Technet também forneceu uma interface, que requer o .net Framework 2.0. Ele foi desenvolvido por Derk Benisch, engenheiro de sistemas do grupo MSN da Microsoft. [ 5 ] Esta interface inclui a versão XP026 do Robocopy (para Vista).
Exemplos de uso
Copie o conteúdo de um diretório recursivamente, de c:\foo para c:\bar
robocopy C:\foo C:\bar /E
Copie o conteúdo de um diretório recursivamente (/E), e copie todas as informações dos arquivos (/COPYALL, que é equivalente a /COPY:DATSOU, D=Data, A=Attributes, T=Date, S=Security=ACL de NTFS, O=Informações do proprietário, U=Informações de auditoria), sem novas tentativas em arquivos bloqueados (/R:0). Observe que as datas do diretório não serão redefinidas se uma versão anterior a XP026 for usada:
robocopy C:\foo C:\bar /COPYALL /E /R:0
Duplicar foo to bar, excluindo quaisquer arquivos em bar que não estejam em foo (/MIR), copiar arquivos em modo reiniciável (/Z) caso a conexão de rede seja perdida
robocopy C:\foo \\backupserver\bar /MIR /Z
Copie pastas, não arquivos
A sintaxe do Robocopy é distintamente diferente daquela usada pelos comandos normais de cópia, pois aceita apenas nomes de pastas, não arquivos, tanto na origem quanto no destino. Nomes de arquivo e curingas (como " *.* ") não são aceitos como origem ou destino. Arquivos podem ser selecionados ou excluídos usando argumentos de filtro, que só podem se referir a nomes de arquivos relativos a pastas já selecionadas, pois caminhos completos não são aceitos.
Por exemplo, para copiar o arquivo foo.txt do diretório c:\bar para c:\baz , a seguinte expressão seria usada
robocopy c:\bar c:\baz foo.txt
Lista parcial de parâmetros de linha de comando
A lista abaixo reflete as opções de linha de comando mais comuns para Robocopy [ 6 ]
Opções comuns
- /MIR
- Ativa o modo espelho, excluindo qualquer arquivo no destino que não esteja mais na origem (equivalente a /E e /PURGE).
- /Z
- Copie os arquivos no modo inicializável. "Reiniciable" hace mención a que Robocopy escribirá un registro de recuperación en el fichero incompleto en caso de que la operación se vea interrumpida o abortada, para que una futura ejecución de Robocopy pueda continuar por donde ésta lo dejó, en lugar de comenzar otra vez desde o princípio. Isso é útil para cópias confiáveis de grandes arquivos ou quantidades em redes instáveis, como [Virtual Private Network|VPN] ou a Internet. Um arquivo incompleto tem o mesmo tamanho do arquivo completo e é datado em um período de 24 horas a partir de 01/01/1980 às 0:00.
- /COPIAR TUDO
- Verifique se foi feito backup da segurança NTFS. Equivalente a /COPY:DATSOU, onde D=Dados, A=Atributos, T=Data, S=Segurança=NTFS ACL, O=Informações do Proprietário, U=Informações de Auditoria.
- /B
- Abra o arquivo no modo de backup. Permite abrir arquivos sem restrições de segurança, mas requer direitos adicionais na origem e no destino.
- /ZB
- Use o modo reiniciável; se o acesso for negado, use o modo de backup.
Opções especializadas
- /S
- Copia subdiretórios se não estiverem vazios (como XCOPY).
- /E
- Copia subdiretórios, mesmo que estejam vazios (como XCOPY).
- /M
- Copia arquivos com o atributo Archive (como XCOPY com a opção /M).
- /MOV
- Mova os arquivos, excluindo-os da fonte.
- /JOGADA
- Exclua arquivos E pastas (exclua-os da fonte após a cópia).
- /SEG:n
- Monitore e inicie a cópia após n alterações (e minutos MOT).
- /MOT:n
- Defina o intervalo mínimo de monitoramento (n minutos) antes de iniciar outra cópia.
- /XA:atributos
- Exclua arquivos com qualquer um dos atributos fornecidos. Exemplo: /XA:H não copiará arquivos com o atributo oculto.
- /Nome XF
- Exclui arquivos indicados em nome . Curingas são aceitos. Exemplo: /XF *.bak não copiará nenhum arquivo com a extensão *.bak.
- /XD nome
- Exclua os diretórios indicados no nome em algum lugar do caminho . Funciona com curingas (por exemplo, /XD BKUP* não copiará diretórios que começam com "BKUP", não importa onde estejam na árvore).
- /XC
- Exclui arquivos com alterações .
- /XN
- E x cluir novos arquivos .
- /XO
- E x cluir arquivos mais antigos
- /XX
- Exclui arquivos e diretórios extras , que podem estar no destino, mas não na origem.
- /XL
- Exclua arquivos e diretórios solitários ; Pode estar na origem, mas não no destino.
- /E SE
- Inclua os seguintes arquivos.
- /ES
- Inclui os mesmos arquivos .
- /ITEM
- Inclui arquivos ajustados (por exemplo, se alguns tiverem atributos de arquivo e outros somente leitura).
- /XJ
- Excluir links simbólicos . _ Ao copiar contas de usuário para outro local no Windows Vista, é importante excluir links simbólicos. O link em '\Users\...\AppData\local' chamado 'Application Data' aponta para seu link pai, criando um loop que pode travar o Robocopy. Além disso, se um link apontar para um disco de origem que é copiado para outro disco de destino usando /MIR (ou /E e /PURGE) e o link for copiado, ele apontará para o disco de origem, o que pode resultar no conteúdo do disco de origem.
- /R:n
- Diz ao Robocopy as 'n' tentativas antes de sair com erro (1 milhão por padrão).
- /IPG:n
- Diz ao Robocopy a pausa em 'n' milissegundos entre os pacotes na transferência de rede. Útil para preservar a largura de banda em conexões lentas.
- /EU
- Simu L para fazer a cópia sem fazê-lo, para testar o resultado de uma configuração a partir da linha de comando.
- /W:n
- Tempo de espera entre as tentativas (30 segundos por padrão).
- /PURGA
- Exclua os arquivos que não estão na origem.
- /DST
- Compensação por diferenças horárias.
- /DCOPIA:T
- Copiar Datas de Diretórios. ### Disponível em XP026 (WinXP) e XP027 e posterior (Vista)
- /MAXAGE:n
- MAX file life - exclui arquivos com mais de n dias/data.
- /MINAGE:n
- Tempo de vida mínimo dos arquivos - exclui arquivos com menos de n dias/data.
- (Se n < 1900 então n = número de dias, caso contrário n = data AAAAMMDD ).
- /MT:n
- Cópia multithread (somente Windows 7). O valor de n varia de 1 a 128 (8 por padrão)
- /FFT
- Suponha FAT File Times (granularidade de data/hora de 2 segundos).
Opções de registro
- /NFL
- Não registre nomes de arquivos.
- /NDL
- Não registre nomes de diretório.
- /NS
- Não registre tamanhos de arquivo.
- /NC
- Não registre classes de arquivos.
- /X
- Liste todos os arquivos extras.
- /V
- Extraia informações detalhadas, com os arquivos excluídos.
- /TS
- Inclua as datas dos arquivos de origem.
- /PF
- Inclua caminhos completos.
- /NP
- Não mostre % copiado.
- /ETA
- Mostrar hora prevista de chegada.
- /LOG:arquivo.txt
- Substitua file.txt pelo status da tarefa.
- /LOG+:arquivo.txt
- Adicione o status da tarefa ao arquivo.txt.
- /TEE
- Saída para a janela do console, bem como para o arquivo de log.
- /NJH
- Nenhum cabeçalho de tarefa.
- /NJS
- Sem resumo de tarefas.
(Veja a lista completa em [1] aqui)
Problemas conhecidos
Até XP026
- A versão XP026 não retorna códigos ERRORLEVEL quando há diretórios/arquivos extras.
- A nova opção no Vista (XP027) /EFSRAW : Copiar arquivos criptografados no modo EFS RAW; não disponível para XP (XP026).
- Robocopy não copiará datas de pastas de origem. Em vez disso, ele usará a data atual ao criar novos. Se você deseja que ambas as cópias sejam iguais, você deve usar outra solução de backup. Endereçado na versão XP026 e na versão Vista (parâmetro /DCOPY:T)
- Ele não copia de forma confiável nomes de arquivos curtos.
- Copiar arquivos no modo reiniciável é muito mais lento (cerca de 6 vezes mais na rede) do que no modo normal ou de backup devido à sobrecarga de administração necessária.
- Embora a versão XP026 já possa copiar arquivos compactados, ocorre muita fragmentação .
- O modo de backup não pode substituir a negação explícita de permissão NTFS ACL se a cópia não for um objeto de propriedade. (Mensagem de erro: ERROR 5 (0x00000005) Copiando o backup NTFS para o diretório de destino. Acesso negado.) Este erro pode ser superado simplesmente copiando os dados com esta opção de configuração /COPY:DT em vez da opção /COPYALL
- Robocopy não preserva links físicos .
- Robocopy não pode copiar links FTP.
Códigos de retorno ErrorLevel
O código de retorno do Robocopy é um bitmap, como pode ser visto em: [ 7 ]
- 0×16 Erro grave. Robocopy não copiou nenhum arquivo. É devido a um erro de uso ou direitos de acesso insuficientes na origem ou no destino.
- 0×08 Alguns arquivos ou pastas não foram copiados (ocorreram erros de leitura e o limite de tentativas foi excedido). Verifique esses erros mais tarde.
- 0×04 Algumas incompatibilidades de arquivo e nome de arquivo foram detectadas. Examine o log de saída. A administração provavelmente será necessária.
- 0×02 Arquivos/diretórios extras foram detectados. Examine o log de saída. A gestão será necessária.
- 0×01 Um ou mais arquivos foram copiados com sucesso (ou seja, novos arquivos chegaram).
- 0×00 Sem erro, nada copiado. Origem e destino são totalmente sincronizados.
Você pode usar esses códigos para uso em arquivos em lote, da seguinte forma:
if errorlevel 16 echo ***FATAL ERROR*** & goto : eof
if errorlevel 8 echo **COPYING FAILED** & goto : eof
if errorlevel 4 echo *MISCREPANCY* & goto : eof
if errorlevel 2 echo EXTRA FILES & goto : eof
if errorlevel 1 echo Copiar com sucesso & goto : eof
if errorlevel 0 echo –sem alteração– & goto : eof
Alternativamente, eles também podem ser usados para fornecer informações mais detalhadas:
if errorlevel 16 echo ***FATAL ERROR*** & goto : eof
if errorlevel 15 echo FAIL MISM XTRA COPY & goto : eof
if errorlevel 14 echo FAIL MISM XTRA & goto : eof
if errorlevel 13 echo FAIL MISM COPY & goto : eof
if errorlevel 12 echo FAIL MISM & goto : eof
if errorlevel 11 echo FAIL XTRA COPY & goto : eof
if errorlevel 10 echo FAIL XTRA & goto : eof
if errorlevel 9 echo FAIL COPY & goto : eof
if errorlevel 8 echo FAIL & goto : eof
if errorlevel 7 echo MISM XTRA COPY & goto : eof
if errorlevel 6 echo MISM XTRA & goto : eof
if errorlevel 5 echo MISM COPY & goto : eof
if errorlevel 4 echo MISM & goto : eof
if errorlevel 3 echo XTRA COPY & goto : eof
if errorlevel 2 echo XTRA & goto : eof
if errorlevel 1 echo COPY & goto : eof
if errorlevel 0 echo –sem alteração– & goto : eof
Versões
Nota: Várias versões do Robocopy não exibem o número da versão ao executar 'Robocopy /?' na linha de comando.
| Versão do produto | versão do arquivo | Ano | Fonte | Outro |
|---|---|---|---|---|
| 1,70 | - | 1997 | Kit de recursos do Windows NT | |
| 1,71 | 4.0.1.71 | 1997 | Kit de recursos do Windows NT | |
| 1,95 | 4.0.1.95 | 1999 | Kit de recursos do Windows 2000 | |
| 1,96 | 4.0.1.96 | 1999 | Kit de recursos do Windows 2000 | © 1995-1997 |
| XP010 | 5.1.1.1010 | 2003 | Kit de recursos do Windows 2003 | |
| XP026 | 5.1.2600.26 | 2005 | Baixado com Robocopy GUI v.3.1.2 | |
| XP027 | 5.1.10.1027 | 2008 | Incluído no Windows Vista , Server 2008, Windows 7 | © 1995-2004 |
| 6.1 | 6.1.7601 | 2009 | KB2639043 | © 2009 |
| 6.2 | 6.2.9200 | 2012 | Incluído no Windows 8 | © 2012 |
| 6.3 | 6.3.9600 | 2013 | Incluído no Windows 8.1 | © 2013 |
| 10,0 | 10.0.10240 | 2015 | Incluído no Windows 10 | © 2015 |
Veja também
- DOIS
- XCOPY
- Prompt do MS-DOS
- rsync
- sincronizar brinquedo
Referências (em inglês)
- ↑ http://windowsitpro.com/Windows/Articles/ArticleID/44324/pg/2/2.html Arquivado em 5 de novembro de 2005, no Wayback Machine Robocopy XP010 FAQ Use novas e poderosas opções de switch.
- ↑ "Executar cópias de arquivos multithread com Robocopy no Windows 7" .
- ↑ Compromisso Robocopy da Microsoft .
- ↑ Bug feio no Robocopy - ignorando a segurança no nível do arquivo .
- ↑ Joshua Hoffman (novembro de 2006). "Utilitário Spotlight Robocopy GUI" (html) . TechNet Magazine (Microsoft Corporation e CMP Media, LLC) . Recuperado em 17 de julho de 2008 .
- ↑ Robocopy.exe, Microsoft Windows Server 2003 Resource Kit, saída de ajuda quando executado com /? interruptor de linha de comando. Ajuda completa com /??? interruptor de linha de comando.
- ↑ "Códigos de retorno de nível de erro do Robocopy" . Arquivado a partir do original em 22 de dezembro de 2008 . Recuperado em 4 de julho de 2009 .