Commande rsync de base pour les copies à bits identiques

16

Pour autant que je comprends, la commande suivante:

sudo rsync --delete -azvr /home/oshiro/Desktop/source/ /home/oshiro/Desktop/destination

Est-ce tout ce dont j'ai besoin pour créer une synchronisation simple des fichiers d'un endroit à un autre? Ou la commande ci-dessus fait-elle quelque chose de plus en arrière-plan que je ne connais pas? Par exemple, cela crée-t-il une sorte de versionnage, où je peux spécifier un temps passé pour obtenir des fichiers comment étaient-ils dans le passé?

C'est une fonctionnalité que je ne souhaite pas activer à ce stade. Tout ce que je veux, c'est une copie à peu près identique des fichiers d'un endroit à un autre. Puis-je me débarrasser de l'un de ces paramètres ou dois-je ajouter d'autres paramètres pour rendre les copies bit-identiques sans versioning. Fondamentalement, je ne veux pas créer de sauvegardes comme le système de sauvegarde de la machine à temps mac crée des sauvegardes.

oshirowanen
la source

Réponses:

16

Rsync ne fait aucun type de version ou ne conserve aucun historique à moins que des instructions telles que --backup. Il existe des outils de sauvegarde qui utilisent rsync, mais rsync lui-même n'est pas un outil de sauvegarde pas plus que quatre roues font une voiture. Rsync gère simplement la synchronisation.

Concernant les options que vous avez utilisées ou souhaitez utiliser:

  • -asignifie «copier presque tout» (copier des répertoires récursivement, copier des liens symboliques en tant que tels, conserver toutes les métadonnées, etc.). Utilisez cette option sauf si vous faites quelque chose d'inhabituel.
  • De plus -a, vous souhaiterez peut-être utiliser -Hpour conserver les liens matériels, -Apour conserver les ACL ( -ane conserve que les autorisations Unix traditionnelles) ou -Xpour conserver les attributs étendus.
  • -rest déjà inclus dans -a.
  • -v signifie verbeux.
  • -z est inutile pour une copie locale.
  • --delete supprime les fichiers de la destination qui ne sont pas présents dans la source.

Voici donc la commande de base pour rendre la destination identique à la source (liens durs absents, ACL et attributs étendus):

rsync -a --delete SOURCE/ DESTINATION/
Gilles 'SO- arrête d'être méchant'
la source
5

J'utilise généralement la commande de cette réponse . L'avantage est qu'il préserve également les attributs étendus et les ACL.

rsync -avxHAX --progress / /new-disk/

Les options sont les suivantes:

-a  : all files, with permissions, etc..
-v  : verbose, mention files
-x  : stay on one file system
-H  : preserve hard links (not included with -a)
-A  : preserve ACLs/permissions (not included with -a)
-X  : preserve extended attributes (not included with -a)
Benedikt Köppel
la source
3

Cette commande devrait être tout ce dont vous avez besoin. rsyncutilise par défaut ce qu'on appelle un algorithme de vérification rapide:

Rsync recherche les fichiers qui doivent être transférés à l'aide d'un algorithme de "vérification rapide" (par défaut) qui recherche les fichiers dont la taille ou la dernière modification ont changé. Toute modification des autres attributs préservés (comme demandé par les options) est effectuée directement sur le fichier de destination lorsque la vérification rapide indique que les données du fichier n'ont pas besoin d'être mises à jour.

C'est souvent bien dans la plupart des applications. C'est plus rapide que la méthode alternative qui calcule une somme de contrôle pour chaque fichier. Cette deuxième méthode garantira le suivi des différences qui pourraient glisser par la première méthode.

Dans tous les cas, rsyncne conserve pas plusieurs copies de fichiers, c'est un copieur / synchroniseur de fichiers brut qui conserve un répertoire synchronisé avec un autre selon les options que vous lui donnez.

Méthode de somme de contrôle

Si vous êtes curieux, voici la commutation que j'utilise rsyncpour effectuer ce type de synchronisation:

$ rsync -avvz -O --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    "SRC" "DEST"

Cela génère ce type de sortie:

2014/02/20 09:51:49 INFO sending incremental file list 
2014/02/20 09:51:49 INFO delta-transmission disabled for local transfer or --whole-file 
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [.d..t......] (Last Modified: 2014/02/19-15:51:34) (bytes: 0         ) ./
2014/02/20 09:51:49 INFO [2014/02/20 09:51:48] [>f+++++++++] (Last Modified: 2014/02/19-15:51:33) (bytes: 27981892  ) somefile.zip
      27.98M 100%   82.27MB/s    0:00:00 (xfer#1, to-check=0/2) 0
2014/02/20 09:51:49 INFO total: matches=0  hash_hits=0  false_alarms=0 data=27981892 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25205] (sender) heap statistics: 
2014/02/20 09:51:49 INFO   arena:        1060864   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            1   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             4 
2014/02/20 09:51:49 INFO   hblks:              1   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        135168   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:       1196032   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          304 
2014/02/20 09:51:49 INFO   uordblks:      667008   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      393856   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      393552   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25207] (server receiver) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         286720   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             3 
2014/02/20 09:51:49 INFO   hblks:              3   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        667648   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        954368   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          224 
2014/02/20 09:51:49 INFO   uordblks:      174480   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:      112240   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:      102352   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO rsync[25206] (server generator) heap statistics: 
2014/02/20 09:51:49 INFO   arena:         135168   (bytes from sbrk) 
2014/02/20 09:51:49 INFO   ordblks:            2   (chunks not in use) 
2014/02/20 09:51:49 INFO   smblks:             6 
2014/02/20 09:51:49 INFO   hblks:              2   (chunks from mmap) 
2014/02/20 09:51:49 INFO   hblkhd:        401408   (bytes from mmap) 
2014/02/20 09:51:49 INFO   allmem:        536576   (bytes from sbrk + mmap) 
2014/02/20 09:51:49 INFO   usmblks:            0 
2014/02/20 09:51:49 INFO   fsmblks:          400 
2014/02/20 09:51:49 INFO   uordblks:       82960   (bytes used) 
2014/02/20 09:51:49 INFO   fordblks:       52208   (bytes free) 
2014/02/20 09:51:49 INFO   keepcost:       32816   (bytes in releasable chunk) 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO Number of files: 2 
2014/02/20 09:51:49 INFO Number of files transferred: 1 
2014/02/20 09:51:49 INFO Total file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Total transferred file size: 27.98M bytes 
2014/02/20 09:51:49 INFO Literal data: 27.98M bytes 
2014/02/20 09:51:49 INFO Matched data: 0 bytes 
2014/02/20 09:51:49 INFO File list size: 93 
2014/02/20 09:51:49 INFO File list generation time: 1.277 seconds 
2014/02/20 09:51:49 INFO File list transfer time: 0.000 seconds 
2014/02/20 09:51:49 INFO Total bytes sent: 27.99M 
2014/02/20 09:51:49 INFO Total bytes received: 34 
2014/02/20 09:51:49 INFO  
2014/02/20 09:51:49 INFO sent 27.99M bytes  received 34 bytes  11.20M bytes/sec 
2014/02/20 09:51:49 INFO total size is 27.98M  speedup is 1.00 
slm
la source