web-dev-qa-db-fra.com

Utilisation de rsync pour sauvegarder sur un lecteur externe

J'achète un disque dur externe pour sauvegarder les ordinateurs de ma maison (enfin !!). J'espère utiliser rsync. J'ai vu un exemple qui fait (ou semble faire) exactement ce que je veux. Quelque chose comme ça:

rsync -aE --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Cependant, lorsque vous regardez la documentation et les exemples RSYNC, etc., les choses ont commencé à regarder beaucoup plus compliquée que cela. Mise en réseau et démons et jargon, oh mon!

Je suppose qu'aucune de ces choses n'est nécessaire tant que je suis simplement rsyncing d'un ordinateur à un lecteur externe connecté au Firewire. Je me trompe de supposer ça? Les choses vont-elles vraiment être plus compliquées que cette commande innocue?

17
stalepretzel

RSYNC fonctionne bien sur les lecteurs locaux. Toutefois, si elle détecte les chemins locaux, il entre automatiquement en mode de fichier qui ne copie pas le diffs, mais copie simplement le fichier source via le fichier de destination. RSYNC ignorera toujours les fichiers qui n'ont pas du tout changé. Lorsque la bande passante entre la source et la destination est élevée (comme deux disques locaux), cela est beaucoup plus rapide que la lecture des deux fichiers, puis la copie des bits modifiés.

10
kbyrd

J'utilise RSYNC avec les drapeaux suivants mémorables comme "glop" et "trunc" et 'v'.

rsync -gloptrunc $srcdir $dstdir

Un bref guide:

  • g - préserver les informations de propriété du groupe
  • l - Copier des liens symboliques comme symboles de symboles
  • o - Info de la conservation du propriétaire
  • p - Préserver les autorisations
  • t - préserver les horodatages
  • r - Recueil Thru Directories
  • u - mise à jour, saupise des fichiers plus récents
  • [n] - Non, ne faites pas cela, faites une course sèche à la place
  • c - Checksum, tente de checksums sur des blocs de fichier lorsque cela est possible (*)
    [.
  • v - verbose

J'exécute toujours ce qui précède pour vous assurer que cela fonctionne, puis retirez le drapeau "N" une fois que je suis satisfait des résultats.

Les principales caractéristiques des combinaisons ci-dessus:

  • Je l'exécute dans les deux directions entre deux (ou plus) serveurs, synchronisation ainsi dans les deux sens. Vous mettez à jour selon ce que vous ressentez est le maître à l'époque.
  • Il permet d'être le maître, avec la cavation significative que si vous souhaitez supprimer quelque chose, vous devez le supprimer sur les deux pour être sûr qu'il est vraiment parti, sinon cela revient.

J'utilise ceci pour conserver deux machines de synchronisation ou pour garder les sous-résidents en synchronisation (comme la sauvegarde d'un lecteur USB).

En tant que l'un des autres postes indiqués plus tôt, la "Checksum" peut effectivement être forcée si vous traitez avec des lecteurs locaux.

Dans certains cas rares, j'ai dû ajouter des paramètres supplémentaires pour tenir compte des modifications des comptes de connexion sur des machines distantes, de changer de ports et même de spécifier où "RSYNC" vit sur l'hôte distant ... mais ceux-ci ne sont pas directement applicables à votre question.

31
ericslaw

Aucun de cela n'est nécessaire, vous pouvez utiliser RSYNC sans aucun démon ni autre type de configuration!

Utilisez simplement la commande rsync et vous êtes prêt à partir.

4
OldJim

À en juger par le chemin de votre commande RSYNC, aurais-je raison de penser que vous utilisez Mac OS X?

Personnellement, je choisirais d'utiliser Time Machine (si vous utilisez Leopard), ou Copy Copard Cloner ( http://www.bombich.com/software/ccc.html ) qui utilise rsync .

Beaucoup plus facile que d'essayer de corriger votre propre script. Un avantage est que Time Machine et CCC vous donneront tous les deux des sauvegardes incrémentielles.

2
Steve Folly

Vous n'avez pas mentionné votre système d'exploitation. Aller par l'hypothèse que son système d'exploitation * Nix basé, votre commande est bonne.

Toutefois, si l'un ou les deux lecteurs se produisent de NTFS formatés, être accessible de * Nix ou même de Windows à l'aide de MOBAXTERM/CYGWIN, la fonctionnalité incrémentielle RSYNC ne fonctionnerait pas bien avec rsync -a (archive flag)

Si NTFS Drive (s) est impliqué, vous pouvez utiliser:

rsync -rvh --size-only --delete /path/to/what/I/want/to/backup /Volumes/FW200/Backups

Téléchargez MOBAXTERM SSH Client pour avoir une fonctionnalité RSYNC sous Windows.

Voici plus d'informations à l'aide de RSYNC avec des lecteurs NTFS

1
Raman Kathpalia

Cela dépend vraiment de savoir si vous utilisez des bases de données ou non. RSYNC prendra un instantané de chaque fichier et ignorera tout écrit intermédiaire. Si vous souhaitez sauvegarder une base de données, vous devez consulter la configuration d'un filtre Ignorer et d'exécuter des outils DB Dump avant le RSSNC.

1
jldugger

J'ai essayé d'utiliser Rsync pour la sauvegarde, mais cela a fini par être en désordre. RSYNC convient mieux à "synchroniser" plutôt que de sauvegarder. Et cela va pour toujours pour comparer des fichiers volumineux.

J'ai étudié un peu et j'ai essayé plusieurs (essais essentiellement tout le monde de la sauvegarde de recherche APT-cache à Ubuntu).

Enfin, je me suis retrouvé avec ' Backup2l - Outil de sauvegarde/restauration à faible entretien', c'est facile. J'aime la façon dont il gère la planification et la rotation (à niveau). Je l'exécute chaque fois que j'ai mon lecteur externe USB attaché de la ligne de commande, mais vous pouvez également l'automatiser.

0
chmeee

Essayez dirvish de faire la sauvegarde. http://www.dirvish.org/
[.____] Il utilise les hardlinks de RSYNC dans les soi-disant voûtes. Vous pouvez conserver autant de vidanges plus anciennes que le disque USB peut prendre. Ou configurez-le d'une manière automatisée.

[.____] Une fois que vous comprenez l'idée de dirvish, il est plus convaincu que RSYNC avec toutes ses options.

0
Michèle

Je trouve une solution pour l'ordinateur Windows: http://www.itefix.no/i2/node/1065

Pour copier D:\partition sur un lecteur externe K: \

rsync -aE --delete --progress /cygdrive/d/* /cygdrive/k

0
Bostjan