Então, depois de examinar a documentação do robocopy, descobri uma maneira de conseguir isso. Não é à prova de balas, embora (ver advertências).
O que isso vai conseguir
O computador A tem o diretório de origem e o computador B tem o diretório de destino. Os dois computadores não podem ser conectados uns aos outros, mas devem usar um dispositivo de armazenamento portátil para transferir arquivos. Esse método permitirá o backup do diretório de origem no diretório de destino, sem copiar todo o conteúdo toda vez que um backup for executado. O backup será uma cópia exata da fonte (veja a seção de ressalvas para exceções).
Para demonstração, os seguintes caminhos são usados:
- C: \ SOURCE (no computador A)
- D: \ DESTINATION (no computador B)
- X: \ TEMP (em um dispositivo de armazenamento portátil, como um disco rígido USB)
Etapa 1: crie uma estrutura de diretórios
Precisamos de uma maneira de o computador A descobrir qual é o conteúdo do backup, por isso usamos o robocopy para criar a estrutura de diretórios no dispositivo de armazenamento portátil. Isso criará pastas e arquivos idênticos, exceto que o tamanho será 0.
robocopy /e /create D:\DESTINATION X:\TEMP
(note: make sure X:\TEMP is empty or non-existent before doing this.
RC won't create 0-size files if they already exist)
Etapa 2: copiar novos arquivos
Agora conecte o armazenamento portátil ao computador A e use o robocopy para copiar novos arquivos. Observe que o robocopy trata os arquivos de tamanho 0 como arquivos "alterados" se os arquivos de tamanho completo existirem na origem, portanto, os excluímos para evitar a cópia de arquivos redundantes que não foram alterados.
robocopy /mir /xc C:\SOURCE X:\TEMP
(note: the documentation on Microsoft technet says the switch is /xct,
but the copy of RC on my Windows 7 machine says it's /xc)
Etapa 3: atualize o backup
Agora que temos os novos arquivos copiados, podemos conectar o armazenamento portátil de volta ao computador B e usar o robocopy para concluir o trabalho. Observe que usamos novamente a opção / XC para evitar substituir nossos arquivos de backup por arquivos de tamanho 0.
robocopy /mir /xc X:\TEMP D:\DESTINATION
Advertências
Esse método baseia-se no fato de que o robocopy cria arquivos de tamanho 0 que são idênticos aos arquivos originais. Eles são identificados como "alterados" porque têm o mesmo registro de data e hora dos arquivos originais, mas possuem tamanhos de arquivo diferentes. Em circunstâncias normais, quando um arquivo é modificado, sua data da última modificação será atualizada e o robocopy irá identificá-lo como "mais novo". Se você tiver arquivos que tenham seus conteúdos modificados, mas não seus metadados, o timestamp permanecerá o mesmo e o resultado será o método acima NÃO fará backup desses arquivos.
Além disso, a mídia de armazenamento portátil usada também pode afetar os arquivos. Se você usar um sistema FAT32, coisas como informações de segurança NTFS e criptografia não serão transferidas, pois não são suportadas no FAT32. Além disso, arquivos com mais de 4 GB não serão transferidos. Portanto, é melhor usar o NTFS até o fim.