web-dev-qa-db-fra.com

Commande ROBOCOPY pour effectuer une sauvegarde incrémentielle

Je suis submergé par la documentation ROBOCOPY. Je souhaite effectuer une sauvegarde incrémentielle de mes fichiers locaux sur le lecteur réseau (M). Je veux qu'il s'exécute aussi rapidement que possible, sans fichier journal et avec le moins de texte possible à l'écran. Mes fichiers se trouvent tous dans un dossier (MyFolder) contenant de nombreux sous-dossiers imbriqués. Par "incrémental", je veux dire "ne copier que ce qui est nouveau ou modifié". Je ne souhaite supprimer aucun fichier historique de la destination, mais si j'ai modifié un fichier, je ne souhaite que la version la plus récente. Et si je n'ai pas changé de fichier, je ne veux pas le copier par-dessus le fichier sauvegardé existant. Est-ce que ci-dessous est correct? (Exécution de Win7 Enterprise.)

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

S'il vous plaît, aucune suggestion pour autre chose que Robocopy. Je ne suis pas autorisé à installer quoi que ce soit. Et je me fiche de la sécurité. J'ai des gens pour ça (que je le veuille ou non). ;-)

27
dmm

J'utilise avec succès une variante du script suivant depuis quelques années maintenant:

robocopy C:\source M:\destination /MIR /FFT /R:3 /W:10 /Z /NP /NDL

Paramètres expliqués

  • L'option /MIR (équivalente à /E /PURGE) signifie "miroir" et représente l'option la plus importante. Il considère votre dossier source comme le "maître", ce qui lui permet d'écraser toutes les modifications apportées du côté cible, ce qui est un paramètre utile pour une sauvegarde.

  • /FFT est une option très importante, car elle permet une différence de 2 secondes lorsque l'on compare les horodatages de fichiers, de sorte que les différences d'horloge mineures entre votre ordinateur et votre périphérique de sauvegarde importent peu. Cela garantira que seuls les fichiers modifiés sont copiés, même si les heures de modification des fichiers ne sont pas exactement synchronisées.

  • /R:3 spécifie le nombre de tentatives, en cas d'échec de la connexion, et /W:10 indique un délai d'attente de 10 secondes entre les tentatives. Ce sont des options utiles lors de la sauvegarde sur un réseau.

  • /Z copie les fichiers en "mode de redémarrage", les fichiers partiellement copiés peuvent donc être conservés après une interruption.

  • /NP et /NDL suppriment certaines sorties de débogage, vous pouvez également ajouter /NS, /NC, /NFL pour réduire davantage la quantité de sortie (voir la documentation pour des détails). Cependant, je suggérerais d’imprimer une sortie de débogage lors des premières exécutions, afin de s’assurer que tout fonctionne comme prévu.

Paramètres utiles supplémentaires mentionnés par d'autres utilisateurs

  • /XJD exclut les "points de jonction" pour les répertoires, les liens symboliques pouvant causer des problèmes tels que des boucles infinies lors de la sauvegarde. Voir les commentaires de Brian pour plus de détails.

  • /MT[:N] utilise le multithreading et peut accélérer les transferts de nombreux petits fichiers. Pour N, une valeur de 2 à 4 fois le nombre de cœurs devrait correspondre à une machine normale. Commenté par Zoredache sur la question initiale.

Éditer en réponse au commentaire de Granger:

Si vous voulez vraiment conserver les fichiers existants sur la destination, mais pas sur la source, remplacez simplement l'option /MIR par /E. Cependant, je suggérerais fortement d'utiliser /MIR lorsque vous souhaitez utiliser la destination pour les sauvegardes incrémentielles. Sinon, tous les fichiers qui ont été renommés ou déplacés à la source encombreront la destination, ce qui signifie que vous obtenez des doublons. Je crée habituellement un sous-dossier "backup" sur la destination qui contient une copie 1: 1 de l'arborescence de mon dossier source. De cette façon, vous pouvez toujours conserver les fichiers historiques à côté du dossier de sauvegarde et les supprimer ou les réorganiser en toute sécurité ultérieurement.

37
pederpansen

J'aime utiliser les éléments suivants:

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

J'exécute ceci en tant qu'administrateur afin que le mode de sauvegarde (option /b) puisse créer une copie des fichiers en cours d'utilisation.

Les autres options non liées à la nature incrémentielle de la sauvegarde sont les suivantes:

/XD pour exclure les répertoires de la sauvegarde.

/XJD pour exclure les points de jonction ("Ma musique").

/R:0 pour définir les nouvelles tentatives sur des tentatives infructueuses sur 0.

/XA:SH pour ignorer les fichiers cachés et système.

Pour supprimer autant d'informations de journalisation que possible, ajoutez les options suivantes /NP /NS /NDL /NFL /NC.

8
Vince