Eu tenho usado com sucesso uma variante do script a seguir há alguns anos:
robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL
Parâmetros explicados
-
A opção
/MIR
(equivalente a/E /PURGE
) significa "espelho" e é a opção mais importante. Ele considera sua pasta de origem como "master", fazendo com que ela sobrescreva quaisquer alterações no lado de destino, o que é uma configuração útil para um backup. -
/FFT
é uma opção muito importante, pois permite uma diferença de dois segundos ao comparar os timestamps de arquivos, de forma que diferenças mínimas de clock entre o seu computador e seu dispositivo de backup não importam. Isso garantirá que apenas os arquivos modificados sejam copiados, mesmo que os horários de modificação dos arquivos não sejam exatamente sincronizados. -
/R:3
especifica o número de novas tentativas, se a conexão falhar, e/W:10
especifica um tempo de espera de 10 segundos entre as novas tentativas. Estas são opções úteis ao fazer o backup em uma rede. -
/Z
copia arquivos no "modo de reinicialização", para que arquivos parcialmente copiados possam ser continuados após uma interrupção. -
/NP
e/NDL
suprimem alguma saída de depuração, você também pode adicionar/NS
,/NC
,/NFL
para reduzir ainda mais a quantidade de saída (consulte a documentação para detalhes). No entanto, eu sugeriria imprimir alguma saída de depuração durante as primeiras execuções, para garantir que tudo esteja funcionando como esperado.
Parâmetros úteis adicionais mencionados por outros usuários
-
/XJD
exclui "pontos de junção" para diretórios, links simbólicos que podem causar problemas como loops infinitos durante o backup. Veja os comentários de Brian para detalhes. -
/MT[:N]
usa multithreading e pode acelerar transferências de muitos arquivos pequenos. Para N, um valor de 2-4 vezes o número de núcleos deve fazer em uma máquina normal. Comentado por Zoredache na pergunta original.
Editar em resposta ao comentário de Granger:
Se você realmente quiser manter os arquivos que existem no destino, mas não no lado da fonte, basta substituir a opção /MIR
por /E
. No entanto, sugiro usar o /MIR
quando você quiser usar o destino para backups incrementais. Caso contrário, todos os arquivos que foram renomeados ou movidos na origem sobrecarregarão o destino, o que significa que você terá duplicatas. Eu costumo criar uma subpasta "backup" no destino que contém uma cópia 1: 1 da minha árvore de pastas de origem. Dessa forma, você ainda pode manter os arquivos históricos ao lado da pasta de backup e removê-los ou reorganizá-los com segurança mais tarde.