Robocopy - Robocopy

Robocopy
Desenvolvedor (s) Microsoft
lançamento inicial 1996, 24-25 anos atrás
Versão estável
10.0.19041.1 / 7 de dezembro de 2019 ; 22 meses atrás ( 07/12/2019 )
Sistema operacional Windows NT 4 e posterior
Modelo Comando
Licença freeware
Local na rede Internet docs .microsoft .com / en-us / windows-server / administração / windows-comandos / robocopy

Robocopy , para "Robust File Copy", é um diretório de linha de comando e / ou comando de replicação de arquivo para o Microsoft Windows . O Robocopy substitui funcionalmente o Xcopy , com mais opções. Criado por Kevin Allen e lançado pela primeira vez como parte do Windows NT 4.0 Resource Kit , é um recurso padrão do Windows desde o Windows Vista e o Windows Server 2008 . O comando é robocopy .

Recursos

Robocopy é conhecido por recursos acima e além dos comandos de cópia e xcopy integrados do Windows , incluindo os seguintes, alguns exigindo opções de linha de comando apropriadas:

  • Capacidade de tolerar interrupções de rede e retomar a cópia (arquivos incompletos são marcados com um carimbo de data de 01/01/1970 e contêm um registro de recuperação para que o Robocopy saiba de onde continuar).
  • Capacidade de ignorar pontos de junção NTFS que podem causar falhas de cópia devido a loops infinitos ( /XJ)
  • Capacidade de copiar dados de arquivo e atributos corretamente e preservar carimbos de data / hora originais, bem como NTFS ACLs , informações de proprietário e informações de auditoria usando as opções de linha de comando/COPYALL ou ./COPY:
  • Começando com a versão XP026, a capacidade de copiar a pasta (ou diretório ) data e timestamps ( /DCOPY:T), mesmo com a capacidade de atualizar os timestamps da pasta (copiados de pastas existentes) em pastas já criadas de versões anteriores (que não copiam a data da pasta e carimbos de data / hora).
  • Capacidade de declarar o "direito de backup" do Windows NT ( /B) para que um administrador possa copiar um diretório inteiro, incluindo arquivos cuja legibilidade foi negada ao administrador.
  • Persistência por padrão, com um número programável de novas tentativas automáticas se um arquivo não puder ser copiado.
  • Um modo "espelho", que mantém as árvores sincronizadas, excluindo também arquivos no destino que não estão presentes na fonte.
  • Capacidade de ignorar arquivos já na pasta de destino com tamanho e carimbo de data / hora idênticos.
  • Um indicador de progresso de linha de comando atualizado continuamente.
  • Capacidade de copiar caminhos com mais de 259 caracteres - até um limite teórico de cerca de 32.000 caracteres - sem erros.
  • Cópia multithread introduzida no Windows 7 e Windows Server 2008 R2 .
  • Código de retorno no encerramento do programa para uso do arquivo em lote .

Compressão

Desde o Windows Server 2019 e o Windows 10, uma compressionopção está disponível robocopyao copiar em uma rede. Com essa opção, se o computador de destino oferecer suporte à compactação SMB e os arquivos copiados forem muito compactáveis, pode haver melhorias significativas no desempenho. A compactação SMB adiciona compactação de espaço em branco em linha às transferências de arquivos. A compactação também está disponível com o xcopycomando e Hyper-V Live Migration with SMB.

Exemplos de uso

Aqui estão alguns exemplos de uso, que não diferencia maiúsculas de minúsculas. Se mais de uma opção for especificada, elas devem ser separadas por espaços.

  • Copie o conteúdo do diretório da origem Directory Apara o destino Directory B(incluindo dados do arquivo, atributos e carimbos de data / hora), recursivamente com diretórios vazios ( /E):
Robocopy "C:\Directory A" "C:\Directory B" /E

Se os nomes de diretório tiverem caracteres não padrão, como espaços, eles devem ser colocados entre aspas duplas, como é normal na linha de comando.

  • Copiar diretório recursivamente ( /E), copiar todas as informações do arquivo ( /COPYALL, equivalente a /COPY:DATSOU, D= Dados, A= Atributos, T= Timestamps, S= Segurança = NTFS ACLs , O= Informações do proprietário, U= Informações de auditoria), não tente novamente os arquivos bloqueados ( /R:0) (o número de novas tentativas em cópias com falha, o valor padrão é 1 milhão), preservar os registros de data e hora dos diretórios originais ( /DCOPY:T- requer a versão XP026 ou posterior):
Robocopy C:\A C:\B /COPYALL /E /R:0 /DCOPY:T
  • Espelhe A para B, destruindo todos os arquivos em B que não estão presentes em A ( /MIR), copie os arquivos no modo de retomada ( /Z) caso a conexão de rede seja perdida:
Robocopy C:\A \\backupserver\B /MIR /Z

Para obter a referência completa, consulte a página Microsoft TechNet Robocopy.

Foco sintático na cópia de pastas

A sintaxe do Robocopy é muito diferente de seus predecessores ( copy e xcopy ), pois aceita apenas nomes de pastas, sem barra invertida, como seus argumentos de origem e destino. Nomes de arquivos e caracteres curinga (como *e ?) não são válidos como argumentos de origem ou destino; os arquivos podem ser selecionados ou excluídos usando o argumento de filtragem opcional "arquivo" (que suporta curingas) junto com várias outras opções.

Por exemplo, para copiar dois arquivos de uma pasta c:\barpara c:\baz, a seguinte sintaxe é usada:

 robocopy c:\bar c:\baz file1.txt file2.db

E para copiar todos os arquivos PDF de c:\barpara c:\baz:

 robocopy c:\bar c:\baz *.pdf

Os arquivos nomeados são copiados apenas da pasta selecionada para cópia; nomes de caminho totalmente qualificados não são suportados.

CUIDADO: Um problema de longa data com o Robocopy significa que se você fizer backup da pasta raiz de uma unidade [por exemplo, robocopy d:\ b:\d-backup\ ....], os arquivos de destino receberão atributos incluindo SH. Isso significa que eles ficarão invisíveis ao acesso normal (incluindo DIR no cmd.exe). Para corrigir isso, adicione /a-:SHà linha de comando robocopy - ou execute um comando ATTRIB para removê-los posteriormente.

Saída

O Robocopy exibe na tela ou, opcionalmente, em um arquivo de log, os nomes de todos os diretórios que encontra, em ordem alfabética. Cada nome é precedido pelo número de arquivos no diretório que atendem aos critérios para serem copiados. Se o diretório ainda não existir no destino, ele será marcado como "Novo diretório"; se o diretório estiver vazio e a opção / E não for usada, ou se não contiver arquivos que atendam aos critérios, um novo diretório não será criado.

Se a opção / NFL (nenhum nome de arquivo no log) for usada, os arquivos que estão sendo copiados serão listados após o nome do diretório em que estão.

No final da saída, há uma tabela com o número de diretórios, arquivos e bytes. Para cada um deles, a tabela fornece o número total encontrado na fonte, o número copiado (incluindo os diretórios marcados como "Novo Dir", mesmo que não tenham sido copiados), o número ignorado (porque já existem no destino) e o número de incompatibilidades , FALHA e extras . "Falha" pode significar que houve um erro de E / S que impediu a cópia de um arquivo ou que o acesso foi negado. Também há uma linha de tempo gasto (em que o tempo gasto em arquivos com falha parece estar na coluna errada).

Limitação de largura de banda

A opção " inter-packet gap " (IPG) do Robocopy permite algum controle sobre a largura de banda da rede usada em uma sessão. Em teoria, a fórmula a seguir expressa o atraso ( D , em milissegundos) necessário para simular uma largura de banda desejada (B D , em kilobits por segundo ), em um link de rede com uma largura de banda disponível de B A kbps:

Na prática, entretanto, geralmente é necessária alguma experimentação para encontrar um atraso adequado, devido a fatores como a natureza e o volume de outro tráfego na rede. A metodologia empregada pela opção IPG pode não oferecer o mesmo nível de controle fornecido por algumas outras tecnologias de limitação de largura de banda, como BITS (que é usado pelo Windows Update e BranchCache).

Limitações

  • Robocopy não copia arquivos abertos. Qualquer processo pode abrir arquivos para acesso de leitura exclusivo, retendo a FILE_SHARE_READbandeira durante a abertura. Mesmo o modo de backup do Robocopy não afetará esses arquivos. (Em vez disso, o modo de backup executa o Robocopy como um "Operador de backup". Isso permite que o Robocopy substitua as configurações de permissões, especificamente, ACLs de NTFS ). Normalmente, o Volume Shadow Copy Service é usado para tais situações, mas o Robocopy não o usa. Conseqüentemente, o Robocopy não é adequado para fazer backup de volumes ativos do sistema operacional. No entanto, um utilitário separado, como ShadowSpawn(Gratuito, Open Sourced e MIT Licensed) ou GSCopyPro($ 30 - $ 50) ou DiskShadow.exe(incluído no Windows Server 2008 ), pode ser usado de antemão para criar uma cópia de sombra de um determinado volume, que o Robocopy pode então cópia de segurança.
  • As versões do Robocopy em sistemas anteriores ao Windows Vista não são espelhadas corretamente. Eles ignoram os atributos de segurança alterados de arquivos espelhados anteriormente.
  • Ao especificar a /MT[:n]opção de habilitar a cópia multithread, a /NPopção de desabilitar o relatório da porcentagem de progresso para arquivos é ignorada. Por padrão, o switch MT fornece 8 threads. O n é o número de threads que você especifica se não deseja usar o padrão.

GUI

Apesar do próprio Robocopy é uma ferramenta de linha de comando, Microsoft TechNet fornece uma GUI front-end chamado Robocopy GUI. Ele foi desenvolvido por Derk Benisch, um engenheiro de sistemas do grupo MSN Search da Microsoft, e exigia o .NET Framework 2.0. Inclui uma cópia do Robocopy versão XP026.

Existem GUIs não Microsoft para Robocopy:

  • Revisão "WinRoboCopy" 1.3.5953.40896 lançada em 19 de abril de 2016.
  • A última versão 1.0.15 do "Easy RoboCopy" foi lançada em 8 de janeiro de 2018.
  • Um programa da SH-Soft, também chamado de "Robocopy GUI" v1.0.0.24 (8 de outubro de 2005).
  • Cinchoo EazyCopy v1.0.0.14 (11 de fevereiro de 2021)
  • RoboCop, Robocopy GUI Skin e gerador de script com Monitoramento de Progresso, 10 de setembro de 2015.

Ken Tamaru da Microsoft desenvolveu um programa de cópia com funcionalidade semelhante ao Robocopy, chamado RichCopy , descontinuado em 2010. Não é baseado no Robocopy e não requer .NET Framework.

Versões

Várias versões do Robocopy não relatam o número da versão ao executar robocopy /?na linha de comando. No entanto, sua versão é armazenada dentro do próprio executável e pode ser consultada com o PowerShell, por exemplo ( gcm robocopy | fl *) ou dentro do Windows Explorer clicando com o botão direito do mouse em Robocopy.exe, selecionando Propriedades e clicando na guia Detalhes.

Versão do produto Versão do arquivo Ano Origem
1,54 - 1996 Windows NT 4.0 Resource Kit
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 Windows 2000 Resource Kit
1,96 4.0.1.96 1999 Windows 2000 Resource Kit
XP010 5.1.1.1010 2003 Windows 2003 Resource Kit
XP026 5.1.2600.26 2005 Baixado com Robocopy GUI v.3.1.2; /DCOPY:Topção introduzida
XP027 5.1.10.1027 2008 Incluído com Windows Vista , Server 2008, Windows 7 , Server 2008r2
6,1 6.1.7601 2009 KB2639043
6,2 6.2.9200 2012 Empacotado com Windows 8
6,3 6.3,9600 2013 Empacotado com Windows 8.1
10,0 10.0.10240.16384 2015 Empacotado com Windows 10
10.0.16299 10.0.16299.15 2017 Incluído com Windows 10 1709
10.0.17134 10.0.17134.1 2018 Incluído no Windows 10 1803
10.0.17763 10.0.17763.1 2018 Incluído no Windows 10 1809
10.0.18362 10.0.18362.1 2019 Incluído no Windows 10 1903
10.0.18362.1 10.0.18362.1 2019 Incluído com Windows 10 1909
10.0.19041.1 10.0.19041.1 2020 Empacotado com Windows 10 20H2

Veja também

Referências

links externos