GNU/Linux >> Tutoriels Linux >  >> Linux

Raisons pour lesquelles rsync ne transfère PAS tous les fichiers ?

Il y a 2 parties à cette question. Tout d'abord, pourquoi y a-t-il une différence entre "Nombre de fichiers" et "Nombre de fichiers transférés". Ceci est expliqué dans la page de manuel de rsync :

Nombre de fichiers :est le nombre de tous les "fichiers" (au sens générique), ce qui inclut les répertoires, les liens symboliques, etc.

Nombre de fichiers transférés :est le nombre de fichiers normaux qui ont été mis à jour via l'algorithme de transfert delta de rsync, qui ne le fait pas inclure les répertoires créés, les liens symboliques, etc .

La différence ici doit être égale au nombre total de répertoires, de liens symboliques et d'autres fichiers spéciaux. Ceux-ci n'ont pas été "transférés" mais juste recréés.

Maintenant, pour la deuxième partie, pourquoi y a-t-il une différence de taille avec du. du indique la quantité d'espace disque utilisée par un fichier, pas la taille du fichier. Le même fichier peut occuper une quantité différente d'espace disque, si par exemple les tailles de blocs des systèmes de fichiers diffèrent.

Si vous êtes toujours préoccupé par l'intégrité des données, un moyen simple d'en être sûr consiste à créer des hachages pour tous vos fichiers et à comparer :

( cd /home/hholtmann && find . -type f -exec md5sum {} \; ) > /tmp/hholtmann.md5sum
( cd /media/wd750/c51/home/ && md5sum -c /tmp/hholtmann.md5sum )

À toutes les autres pauvres âmes perdues qui travaillent pendant les vacances au cœur de la nuit,

--checksum fait en sorte que rsync vérifie s'il y a des changements dans les fichiers, sinon il vérifie les horodatages et la taille des fichiers et l'appelle un jour,

c'est suffisant dans 99,9 % des cas et vous permet de brûler en enfer pour le reste des 0,01 % jusqu'à ce que vous compreniez cela


Je pourrais aussi bien ajouter quelque chose que j'ai appris.

J'utilisais la commande rsync /path/source/* /path/to/destination/* (notez le globbing). C'était gênant car 90% de mes fichiers avaient été transférés à quelques exceptions près (même étant dans le même dossier que certains qui ont été transférés). Après avoir supprimé le * de la source et de la destination, ils ont tous été transférés. ¯\_(ツ)_/¯


Linux
  1. Supprimer tous les fichiers/répertoires sauf un fichier ?

  2. Supprimer tous les fichiers d'un répertoire dont le nom ne correspond pas à une ligne dans une liste de fichiers ?

  3. Pseudo fichiers pour données temporaires ?

  4. Utiliser rsync pour synchroniser les fichiers

  5. cp -r sans fichiers cachés

Reprendre les fichiers partiellement transférés via SSH à l'aide de Rsync

Linux - Pourquoi Rsync sur Linux ne conserve pas tous les horodatages (heure de création) ?

Recherche de fichiers NON détenus par un utilisateur spécifique

rsync N fichiers les plus récents dans un répertoire

Pourquoi rsync n'utilise-t-il pas delta-transfer pour les fichiers locaux ?

Comment appeler à plusieurs reprises rsync jusqu'à ce que les fichiers soient transférés avec succès