rsync met très longtemps à envoyer la liste des fichiers

14

J'essaie d'utiliser rsync pour sauvegarder certains fichiers d'un disque dur interne vers un lecteur USB. (Je travaille sur un NAS WD MyBook World)

Il y a deux dossiers que je veux sauvegarder. Un dossier musical et un dossier vidéo. Le dossier de musique (864 fichiers, environ 10 Go) a parfaitement fonctionné en environ 1 heure (pour la progression complète).

Mais le dossier vidéo (1025 fichiers, environ 700 Go) est toujours sur "l'envoi d'une liste de fichiers incrémentielle" depuis maintenant 8 heures. Je ne pense pas que quelque chose ait été transféré. Qu'est-ce qui pourrait provoquer une telle différence? Le dossier vidéo ne contient pas beaucoup plus de fichiers. Oui, il est beaucoup plus grand, mais cela ne devrait pas faire de différence sur la génération de la liste de fichiers, je pense.

J'utilise cette commande rsync:

/shares/extern # rsync -avPc --stats /shares/Public/Shared\ Videos /shares/extern/

Depuis que je travaille sur un NAS, je n'ai plus autant de puissance CPU, mais c'est beaucoup trop long je pense.

Que pensez-vous, ce comportement est-il normal? Y a-t-il des suggestions sur ce que je peux faire pour accélérer le tout un peu?

J'utilise rsync 3.0.2

Graslandpinguin
la source
2
Veuillez ne pas mettre de réponses dans le corps de la question. Vous pouvez ajouter votre propre réponse si aucune réponse actuelle n'est correcte ou commenter les réponses des autres si vous avez quelque chose à ajouter. Merci!
Caleb

Réponses:

25

L' -coption force rsync à calculer une somme de contrôle pour tous les fichiers. Cela signifie qu'il lit le contenu de tous les fichiers vidéo avant de commencer à décider lesquels copier. C'est évidemment lent.

Envisagez de supprimer cette option si possible. Vous n'en avez besoin que dans de rares cas. Voir la description sur la page de manuel pour plus de détails:

Notez que rsync vérifie toujours que chaque fichier transféré a été correctement reconstruit du côté de la réception en vérifiant une somme de contrôle de fichier entier qui est générée lors du transfert du fichier, mais que la vérification automatique après le transfert n'a rien à voir avec cette option avant - the-transfer "Ce fichier doit-il être mis à jour?" vérifier.

casser
la source
oh merci pour l'astuce. après avoir lu la page de manuel, je peux dire que j'ai mal compris l'option -c. Je pensais qu'il vérifie après avoir copié avec une somme de contrôle. Merci pour l'aide!
Graslandpinguin
@CaptnLenz, heureux de vous aider. Veuillez envisager de cliquer sur la coche à gauche de ma réponse pour accepter ma solution.
snap
J'ai rencontré ce problème car j'ai transmis «-archive» plutôt que «--archive» à la commande rsync. rsync considérait '-archive' comme une variante de -c.
Leons
4
Juste pour développer le commentaire @Leons, -archive est considéré comme -a -r -c -h -i -v -e, tous les commutateurs valides. Petite erreur délicate.
Mark C
Attendez, quelle est la différence entre vérifier la somme de contrôle et vérifier la taille du fichier / la date de modification? La vérification de la somme de contrôle prend-elle réellement beaucoup plus de temps que la vérification de la taille du fichier / de la date de modification? Rsync enregistre-t-il les sommes de contrôle après la première exécution ou les calcule-t-il toutes à partir de zéro à chaque exécution?
Ken