Normalement, rsyncignore 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 rsyncd'avoir à examiner le contenu de fichiers qui sont très probablement identiques du côté source et du côté destination.
--ignore-timesindique rsyncde désactiver la méthode heuristique de tailles et de fichiers et de transférer inconditionnellement TOUS les fichiers de la source à la destination. rsynclit 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-fileoption a été spécifiée ou non.
--checksummodifie é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 rsyncversion 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 --checksumplupart 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-timesd’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 --checksumlorsque vos réseaux sont rapides et / ou votre processeur relativement lent.
Je pense que je n'utiliserais jamais --checksumou --ignore-timessi 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.
--checksumutile avec--itemize-changespour 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-changesquelque chose d'inattendu est sorti, alors je sais qu'il y a un problème potentiel sur lequel je devrais me pencher.