Normalement, rsync
ignore les fichiers lorsque leur taille et leur durée sont identiques sur les côtés source et cible. C'est une heuristique qui est généralement une bonne idée, car elle évite rsync
d'avoir à examiner le contenu de fichiers qui sont très probablement identiques du côté source et du côté destination.
--ignore-times
indique rsync
de désactiver la méthode heuristique de tailles et de fichiers et de transférer inconditionnellement TOUS les fichiers de la source à la destination. rsync
lit ensuite chaque fichier du côté source, car il devra soit utiliser son algorithme de transfert delta, soit simplement envoyer chaque fichier dans son intégralité, selon que l' --whole-file
option a été spécifiée ou non.
--checksum
modifie également l'heuristique fichier-fois-et-tailles, mais ici, il ignore les temps et examine uniquement les tailles. Les fichiers de taille différente de la source et de la destination sont transférés, car ils sont évidemment différents. Les fichiers de même taille sont contrôlés (avec MD5 dans la rsync
version 3.0.0+ ou MD4 dans les versions précédentes), et ceux dont les montants sont différents sont également transférés.
Dans les cas où les côtés source et cible sont pratiquement identiques, la --checksum
plupart des fichiers seront vérifiés des deux côtés. Cela peut prendre beaucoup de temps, mais le résultat est que le minimum de données sera réellement transféré sur le réseau, particulièrement si l’algorithme de transfert delta est utilisé. Bien sûr, ce n’est une victoire que si vous avez des réseaux très lents et / ou des processeurs très rapides.
--ignore-times
d’autre part, enverra plus de données sur le réseau et entraînera la lecture de tous les fichiers source, mais au moins, cela n’imposera pas la charge supplémentaire que représente le traitement de nombreuses tables de hachage cryptographiquement robustes sur les CPU source et cible. Je m'attendrais à ce que cette option fonctionne mieux que --checksum
lorsque vos réseaux sont rapides et / ou votre processeur relativement lent.
Je pense que je n'utiliserais jamais --checksum
ou --ignore-times
si je transférais des fichiers vers une destination où il était soupçonné que le contenu de certains fichiers était corrompu, mais dont les heures de modification n'avaient pas changé. Je ne peux pas vraiment penser à une autre bonne raison d'utiliser l'une ou l'autre option, bien qu'il existe probablement d'autres cas d'utilisation.
--checksum
utile avec--itemize-changes
pour vérifier les sauvegardes. De temps en temps, mes scripts de sauvegarde exécutent une comparaison complète de cette manière une fois les mises à jour quotidiennes / hebdomadaires actuelles terminées. On me fait tomber un email marqué urgent si--itemize-changes
quelque chose d'inattendu est sorti, alors je sais qu'il y a un problème potentiel sur lequel je devrais me pencher.--ignore-times
et surtout--checksum
sont nécessaires si l’un de vos "fichiers" est un conteneur de fichiers Truecrypt car, par défaut, l’horodatage du fichier n’est pas mis à jour. Voir productforums.google.com/forum/#!topic/drive/gnmDp3UXEgs et ask-leo.com/why_wont_my_truecrypt_volume_backup.html--checksum
somme de contrôle ne concerne- t-elle que les noms de fichiers source sur la machine de destination ou tous les fichiers du répertoire de destination?La somme de contrôle est également utile si vous avez utilisé un autre système pour synchroniser des fichiers sans conserver d’horodatage. La somme de contrôle ne transfère que les fichiers différents ET met à jour tous les horodatages du destinataire afin qu'ils correspondent
la source
Un détail: l'option de somme de contrôle vérifie tout un fichier à une extrémité, puis tout le fichier à l'autre extrémité. Si vos fichiers sont un peu volumineux, ce type de parallélisme tue.
En outre, si vous avez d’énormes fichiers, vous courrez le plus de problèmes avec un délai d’attente
--checksum
, comme vous ne le faites pas-I
.la source
Du point
info rsync
de vue de l'--checksum
option - "Étant donné que cette somme de contrôle de tous les fichiers des deux côtés de la connexion se produit en plus des vérifications automatiques de la somme de contrôle effectuées lors du transfert d'un fichier, cette option peut être assez lente."la source
L'
--ignore-times
option aura probablement pour résultat que tous les fichiers seront codés en delta et que l'algorithme de transfert de delta (codage en delta) est au moins aussi lent que le checksum.Je ne sais pas si rsync
--ignore-times
est suffisamment intelligent pour éviter la "vérification automatique après le transfert" dans les cas fréquents où le transfert delta n'entraînera aucun transfert.Pour
--ignore-times
:Les deux
--checksum
et--ignore-times
seront "assez lents" mais--ignore-times
probablement encore plus lents (en raison des 2 possibilités ci-dessus).Bonne question - signalez s'il vous plaît si vous trouvez des différences de performance dans la pratique.
la source