2014-09-19 21:03:44 +0000 2014-09-19 21:03:44 +0000
32
32

Comando ROBOCOPY para fazer um backup incremental

Estou sobrecarregado com a documentação da ROBOCOPY. Quero fazer uma cópia de segurança incremental dos meus ficheiros locais para a unidade de rede (M). Quero que seja executado o mais rapidamente possível, sem ficheiro de registo e com o mínimo de texto possível para o ecrã. Os meus ficheiros estão todos algures dentro de uma pasta (MyFolder) que tem muitas subpastas aninhadas. Por “incremental” quero dizer “apenas copiar o que é novo ou alterado”. Não quero apagar nenhum ficheiro histórico no destino, mas se mudei um ficheiro, só quero a versão mais recente. E se não tiver alterado um ficheiro, então não o quero copiar sobre o ficheiro de cópia de segurança existente. Está correcto abaixo? (Running Win7 Enterprise.)

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

Por favor, nenhuma sugestão para nada além de robocopy. Não estou autorizado a instalar nada. E não quero saber de coisas de segurança. Tenho pessoas para isso (quer as queira ou não) ;-)

Respostas (2)

43
43
43
2014-10-26 14:25:57 +0000

Há alguns anos que tenho vindo a utilizar com sucesso uma variante do seguinte guião:

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. Considera a sua pasta de origem como o “master”, fazendo com que o robocopy copie/espelhe quaisquer alterações na origem (novos ficheiros, apagamentos, etc.) para o alvo, o que é uma configuração útil para uma cópia de segurança.

  • /FFT é uma opção muito importante, uma vez que permite uma diferença de 2 segundos ao comparar carimbos temporais de ficheiros, de modo a que pequenas diferenças de relógio entre o seu computador e o seu dispositivo de cópia de segurança não importam. Isto assegurará que apenas os ficheiros modificados sejam copiados, mesmo que os tempos de modificação dos ficheiros não estejam exactamente sincronizados.

  • /R:3 especifica o número de tentativas, se a ligação falhar, e /W:10 especifica um tempo de espera de 10 segundos entre as tentativas. Estas são opções úteis quando se faz o backup através de uma rede.

  • /Z copia ficheiros em “modo reiniciar”, pelo que os ficheiros parcialmente copiados podem ser continuados após uma interrupção.

  • /NP e /NDL suprimir alguma saída de depuração, pode adicionalmente adicionar /NS, /NC, /NFL para reduzir ainda mais a quantidade de saída (ver a documentação para detalhes). Contudo, sugiro imprimir alguma saída de depuração durante as primeiras tiragens, para ter a certeza de que tudo está a funcionar como esperado.

Parâmetros úteis adicionais mencionados por outros utilizadores

  • /XJD exclui “pontos de junção” para directórios, ligações simbólicas que podem causar problemas como loops infinitos durante a cópia de segurança. Ver os comentários de Brian para mais detalhes.

  • /MT[:N] utiliza multithreading e pode acelerar as transferências de muitos pequenos ficheiros. Para N, um valor de 2-4 vezes o número de núcleos deve fazer numa máquina normal. Comentado por Zoredache sobre a pergunta original.

Editar em resposta ao comentário de Granger:

Se quiser realmente manter ficheiros que existem no destino, mas não no lado da fonte, basta substituir a opção /MIR por /E. No entanto, eu sugeriria fortemente a utilização de /MIR quando se pretende utilizar o destino para backups incrementais. Caso contrário, quaisquer ficheiros que tenham sido renomeados ou movidos na fonte irão desorganizar o destino, o que significa que se obtêm duplicados. Normalmente crio uma subpasta “backup” no destino que contém uma cópia 1:1 da minha árvore de pastas de origem. Desta forma, ainda é possível manter ficheiros históricos junto da pasta de cópia de segurança e removê-los ou reorganizá-los mais tarde em segurança.

8
8
8
2015-01-20 18:58:26 +0000

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

Executo isto como Administrador para que o modo de cópia de segurança (opção /b) possa fazer cópia dos ficheiros em uso.

Outras opções não relacionadas com a natureza incremental da cópia de segurança são

/XD para excluir directórios da cópia de segurança.

/XJD para excluir pontos de junção (“A Minha Música”).

/R:0 para definir tentativas falhadas de 0.

/XA:SH para saltar ficheiros ocultos e de sistema.

Para remover tanta informação de registo quanto possível, anexar as seguintes opções /NP /NS /NDL /NFL /NC.