web-dev-qa-db-fra.com

Erreur Rsync 23: Puis-je savoir quels fichiers n'ont pas été transférés?

J'ai exécuté Sudo rsync -va --progress De la racine d'un lecteur externe vers un dossier sur un autre lecteur externe. La raison en est que le lecteur source a un NTFS erroné et je n'ai pas accès à un PC Windows pour réparer le NTFS.

10 heures plus tard, il a déclaré:

sent 608725204596 bytes  received 19365712 bytes  15902210.53 bytes/sec
total size is 608586212274  speedup is 1.00
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]

J'ai enregistré l'intégralité de la sortie du terminal. Au début, il y a quelques centaines de Input/output error (5) pour les fichiers dont je n'ai pas besoin pour un total d'environ 2 Go. "Utilisation du disque" du Finder OSX me dit que la source est de 617 milliards d'octets, pas 608 comme dans le rapport ci-dessus.

Des questions:

  1. La première partie de la sortie détaillée (création d'une liste de fichiers) indique-t-elle définitivement Input/output error (5) pour CHAQUE fichier qui ne sera pas copié?
  2. code 23 Signifie-t-il que tous les fichiers à l'exception de Input/output error (5) ont été copiés avec succès?
34
themirror

23 signifie uniquement (à partir de la page de manuel):

23 Transfert partiel dû à une erreur

Pour tout ce qui n'a pas pu être transféré, vous obtiendrez un message d'erreur. Notez que les messages d'erreur peuvent concerner l'ouverture ou la lecture de répertoires, vous ne verrez donc pas nécessairement un message d'erreur pour chaque fichier qui n'a pas pu être transféré.

Si votre source n'a pas changé, vous pouvez réexécuter le rsync avec -n pour voir ce qu'il transfèrerait cette fois sans effectuer le transfert.

À propos de la différence d'octets, rsync vous donne la taille des fichiers (combien de données peuvent être lues à partir d'eux). Êtes-vous sûr que Finder ne vous indique pas l'utilisation du disque à la place?

Notez également que NTFS peut stocker des données dans des flux alternatifs ou des attributs des fichiers, et rsync ne sera généralement pas transféré (n'est pas au courant de ) ceux-là (et cela peut aussi représenter beaucoup).

22
Stéphane Chazelas

Vous pouvez désactiver la sortie sans erreur de rsync en utilisant -q drapeau.

-q, --quiet                 suppress non-error messages

Si vous exécutez à nouveau rsync avec le -q flag, rsync échouera probablement encore, mais au moins cette fois, les messages d'erreur à l'origine de votre problème ne seront pas enfouis sous les lignes et les lignes des messages d'état de transfert de fichiers.

18
Grimtech

Re: erreur 23 - La raison la plus courante d'avoir cette erreur est de faire une faute de frappe mineure entrant dans la source rsync. Examinez votre commande source et assurez-vous que tout se vérifie par rapport à ls, et recherchez des choses subtiles stupides comme un espace supplémentaire ou un problème de 1 l.

4
blut swaan