web-dev-qa-db-fra.com

Comment copier efficacement uniquement les fichiers modifiés d'un disque vers un usb externe?

J'ai un répertoire appelé my_projects_linux dans le système de fichiers Ubuntu, qui contient tout mon travail depuis de nombreuses années. Le répertoire contient des fichiers, des sous-répertoires, etc.

À des fins de sauvegarde, je copie parfois ce répertoire et tout son contenu sur un disque dur externe.

Par conséquent, le contenu de mon lecteur externe ressemble à ceci:

/mounted_drive/my_projects_linux
/mounted_drive/my_projects_windows  # the same idea to backup Windows work

Par conséquent, ce que je recherche est une commande qui:

  1. Travaillerait comme

    cp /home/my_projects_linux /mounted_drive/my_projects_linux
    

    Il convient de remplacer les anciens fichiers, sous-répertoires, fichiers dans les sous-répertoires, etc. du disque externe par le nouveau contenu de mon PC.

  2. Soyez rapide. Il ne doit copier que les fichiers modifiés ou ceux qui viennent d'être créés. Étant donné que la taille de my_projects_linux est supérieure à 50 Go, la copie prend plus d'une heure, ce qui est trop lent. En réalité, souvent, seuls quelques Mo ont été modifiés depuis la dernière sauvegarde. Par conséquent, une copie peut en principe être réalisée beaucoup plus rapidement.

Comment faire ça?

J'ai cherché sur Google que cp avec le drapeau -u pourrait éventuellement correspondre à mes besoins. Cela fonctionnerait-il (par exemple, gérerait-il correctement les sous-répertoires des sous-répertoires)?

En outre, le stockage du système de fichiers sur un disque externe est-il un moyen approprié d'effectuer une sauvegarde ou existe-t-il un moyen plus sophistiqué? Par exemple, en utilisant un nuage? Notez que la méthode la plus sophistiquée doit être simple, sinon elle ne l'emportera pas sur la facilité d'exécution d'une commande Shell.

7
mercury0114

Vous décrivez en quelque sorte pourquoi rsync a été conçu. De man rsync:

   Rsync  finds  files  that  need to be transferred using a "quick
   check" algorithm (by default) that looks  for  files  that  have
   changed  in  size  or in last-modified time.  Any changes in the
   other preserved attributes (as requested by options) are made on
   the  destination  file  directly  when the quick check indicates
   that the file’s data does not need to be updated.

Le réseautage soulève également de nombreux problèmes, mais nous sommes également heureux de travailler au niveau local.
Vous avez essentiellement besoin de:

rsync -rtv /home/my_projects_linux /mounted_drive/my_projects_linux

Il y a une tonne d'options disponibles mais -rtv synchronisera r de manière ecursive, en conservant le t imecode la même chose, tout en étant v énervé à propos de ce qu'il fait.

13
Oli

Je sais que cette question a déjà une réponse acceptée. Cependant, je voulais ajouter une solution graphique multi-plateformes car je vois que vous utilisez également Windows. J'utilise aux mêmes fins Freefilesync . C'est aussi FLOSS.

La configuration est absolument intuitive et vous pouvez enregistrer différentes tâches de synchronisation.

Il existe également un ppa, bien qu'il n'inclue pas la dernière version du 14.04 pour le moment. Pour installer via ppa:

Sudo apt-add-repository ppa:freefilesync/ffs
Sudo apt-get update
1
Bruni

Pour répondre à votre deuxième question, un moyen plus sophistiqué de sauvegarder est rdiff-backup.

rdiff-backup sauvegarde un répertoire dans un autre, éventuellement sur un réseau. Le répertoire cible constitue une copie du répertoire source, mais des différences inverses supplémentaires sont stockées dans un sous-répertoire spécial de ce répertoire cible, de sorte que vous pouvez toujours récupérer les fichiers perdus il y a quelque temps. L'idée est de combiner les meilleures fonctionnalités d'un miroir et d'une sauvegarde incrémentielle. rdiff-backup préserve également les sous-répertoires, les liens physiques, les fichiers de développement, les autorisations, la propriété des identifiants uniques (UID/gid), les temps de modification, les attributs étendus, les ACL et les ressources.

Et si vous voulez vraiment utiliser le cloud: j'utilise CrashPlan avec un abonnement payant. Alors vous jamais devez plus penser aux sauvegardes manuelles.

0
Amedee Van Gasse