ROBOCOPY comando para fazer um backup incremental

27

Estou impressionado com a documentação do ROBOCOPY. Eu quero fazer um backup incremental dos meus arquivos locais para a unidade de rede (M). Eu quero que ele seja executado o mais rápido possível, sem nenhum arquivo de log e com o mínimo de texto possível para a tela. Meus arquivos estão todos em algum lugar dentro de uma pasta (MyFolder) que possui muitas subpastas aninhadas. Por "incremental" quero dizer "copiar apenas o que é novo ou alterado". Não quero excluir nenhum arquivo histórico no destino, mas, se eu alterei um arquivo, só quero a versão mais recente. E se eu não tiver alterado um arquivo, não quero copiá-lo pelo arquivo de backup existente. Está abaixo correto? (Executando o Win7 Enterprise.)

robocopy C:\MyFolder M:\MyFolder /z /np /xo /e

Por favor, não há sugestões para nada além de robocopy. Eu não tenho permissão para instalar nada. E eu não me importo com coisas de segurança. Eu tenho pessoas para isso (quer eu queira ou não). ; -)

    
por dmm 19.09.2014 / 23:03

2 respostas

34

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.

    
por 26.10.2014 / 15:25
7

Eu gosto de usar o seguinte:

robocopy "C:\Users\<user>" "F:\robocopy\<user>" /XJD /R:0 /XA:SH /E /ZB /XO /XD "Downloads" "AppData" /LOG:robocopy.log /TEE

Eu executo isso como Administrador para que o modo de backup ( /b option) possa fazer cópias dos arquivos em uso.

Outras opções não relacionadas à natureza incremental de backup são:

/XD para excluir diretórios do backup.

/XJD para excluir pontos de junção ("Minhas músicas").

/R:0 para tentar novamente tentativas malsucedidas para 0.

/XA:SH para pular arquivos ocultos e de sistema.

Para remover o máximo possível de informações de registro, acrescente as seguintes opções /NP /NS /NDL /NFL /NC .

    
por 20.01.2015 / 19:58