11 votes

Comment copier efficacement les fichiers modifiés d'un disque vers une clé 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 et ainsi de suite.

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

Ainsi, le contenu de mon disque dur externe ressemble à ceci :

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

Donc, ce que je cherche est une commande qui :

  1. Travaillerait comme

    cp /home/my_projects_linux /mounted_drive/my_projects_linux

    Il doit 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 ont été nouvellement créés. Étant donné que la taille de my_projects_linux est >50 Go, tout copier prend plus d'une heure, ce qui est trop lent. En réalité, souvent seuls quelques Mo ont changé depuis la dernière sauvegarde, donc théoriquement une copie peut être faite beaucoup plus rapidement.

Comment faire ?

J'ai googlé ce cp avec le -u drapeau pourrait éventuellement correspondre à mes besoins. Cela fonctionnerait-il (par exemple, cela permettrait-il de gérer correctement les sous-répertoires de sous-répertoires) ?

De plus, le stockage du système de fichiers sur un disque externe est-il un moyen approprié de faire une sauvegarde, ou existe-t-il un moyen plus sophistiqué ? Par exemple, en utilisant un nuage ? Notez que la manière plus fantaisiste doit être simple, car sinon elle ne compensera pas la facilité d'exécution d'une commande Shell.

14voto

Mufaka Points 54

Vous êtes en quelque sorte en train de décrire ce que rsync a été conçu pour. Sur le site 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.

Il y a aussi beaucoup d'arguments en faveur de la mise en réseau, mais c'est bien de faire du local aussi.
En gros, tout ce dont vous avez besoin :

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 gardant le t imecodes les mêmes, tout en étant v erbose sur ce qu'il fait.

1voto

Amedee Van Gasse Points 270

Pour répondre à votre deuxième question, une façon plus fantaisiste de sauvegarder est la suivante rdiff-backup .

rdiff-backup sauvegarde un répertoire vers un autre, éventuellement via un réseau. réseau. Le répertoire cible finit par être une copie du répertoire source, mais les reverse diffs 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 des fichiers perdus depuis un certain temps. L'idée est de combiner les meilleures caractéristiques d'un miroir et d'un système de sauvegarde incrémentiel fichiers dev, les permissions, la propriété uid/gid, les temps de modification, les attributs étendus, les acls, et les fourches de ressources.

Et si vous voulez vraiment passer au cloud : J'utilise CrashPlan avec un abonnement payant. Ensuite, vous jamais plus avoir à penser aux sauvegardes manuelles.

1voto

Raphael R. Points 3033

Je sais que cette question a déjà une réponse acceptée. Cependant, je voulais ajouter une solution d'interface graphique multiplateforme car je vois que vous utilisez également Windows. J'utilise pour les mêmes raisons Freefilesync . C'est aussi un logiciel libre.

La configuration est absolument intuitive et vous pouvez sauvegarder différents travaux de synchronisation.

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

sudo apt-add-repository ppa:freefilesync/ffs
sudo apt-get update

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X