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.