web-dev-qa-db-fra.com

Rsync montrer des progrès pour un fichier individuel

J'utilise rsync pour télécharger/télécharger un fichier assez grand (20 Go). Je suis au courant de l'option --Prôme, mais ce qu'il fait dans mon cas me montre simplement le résultat à la fin.

Mon problème est que pendant une connexion instable - je ne sais pas s'il s'agit toujours de télécharger/télécharger ou quelque chose a mal tourné. Existe-t-il un moyen de montrer la barre de progression pour un fichier individuel? Quelque chose de similaire à ce que wget fait par défaut?

Merci!

21
Salmon

Cela pourrait être ce que vous êtes après.

% rsync -avvz --times --stats --checksum --human-readable --acls \
    --itemize-changes --progress \
    --out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
    /usr/include/glib-2.0 my-glib-copy/

La ventilation des commutateurs comme suit:

  • Avvz = archive, verbeuse x 2, compresse
  • -- fois = conserve les temps de modification
  • -- Statistiques = donner des statistiques de transfert de fichiers
  • --- CheckSum = Passer en fonction de la somme de contrôle, pas de mod-temps et de taille
  • -- Human-lisible = nombre de sortie dans un format lisible par l'homme
  • -- ACLS = préserver les ACLS (implique -p)
  • -- Établir les modifications = sortie un changement de modification pour toutes les mises à jour
  • -- Progress = montrer des progrès pendant le transfert
  • -- Out-format= '[% T] [% I] (dernière modification:% m) (octets:% -10L)% -100n' [.____]
    • % t = heure actuelle
    • % I = une liste détaillée de ce qui est mis à jour
    • % m = la dernière heure modifiée du fichier
    • % - 10L = la longueur du fichier en octets (-10 est pour l'alignement et la précision)
    • % - 100n = le nom de fichier (formulaire court; fuite "/" sur DIR) (-100 est pour l'alignement et la précision)

NOTE: Voir les pages de l'homme pour rsync et rsyncd.conf Pour plus de détails sur les commutateurs ci-dessus.

La commande ci-dessus produit la transcription suivante:

sending incremental file list
delta-transmission disabled for local transfer or --whole-file
[2012/12/23 21:34:46] [cd+++++++++] (Last Modified: 2010/12/19-08:13:31) (bytes: 4096      ) glib-2.0/
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 1511      ) glib-2.0/glib-object.h
       1.51K 100%    0.00kB/s    0:00:00
       1.51K 100%    0.00kB/s    0:00:00 (xfer#1, to-check=181/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 2910      ) glib-2.0/glib.h
       2.91K 100%    2.78MB/s    0:00:00
       2.91K 100%    2.78MB/s    0:00:00 (xfer#2, to-check=180/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 3613      ) glib-2.0/gmodule.h
       3.61K 100%    3.45MB/s    0:00:00
       3.61K 100%    3.45MB/s    0:00:00 (xfer#3, to-check=179/183)
...
...
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8431      ) glib-2.0/gobject/gvaluecollector.h
       8.43K 100%  141.96kB/s    0:00:00
       8.43K 100%  141.96kB/s    0:00:00 (xfer#178, to-check=1/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8507      ) glib-2.0/gobject/gvaluetypes.h
       8.51K 100%  143.23kB/s    0:00:00
       8.51K 100%  143.23kB/s    0:00:00 (xfer#179, to-check=0/183)
total: matches=0  hash_hits=0  false_alarms=0 data=1305506

rsync[2996] (sender) heap statistics:
  arena:         540672   (bytes from sbrk)
  ordblks:            3   (chunks not in use)
  smblks:             7
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        942080   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          592
  uordblks:      404784   (bytes used)
  fordblks:      135888   (bytes free)
  keepcost:      134240   (bytes in releasable chunk)

rsync[2999] (server receiver) heap statistics:
  arena:         286720   (bytes from sbrk)
  ordblks:            2   (chunks not in use)
  smblks:             8
  hblks:              3   (chunks from mmap)
  hblkhd:        667648   (bytes from mmap)
  allmem:        954368   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          672
  uordblks:      174480   (bytes used)
  fordblks:      112240   (bytes free)
  keepcost:      102352   (bytes in releasable chunk)

rsync[2998] (server generator) heap statistics:
  arena:         233472   (bytes from sbrk)
  ordblks:            4   (chunks not in use)
  smblks:             6
  hblks:              2   (chunks from mmap)
  hblkhd:        401408   (bytes from mmap)
  allmem:        634880   (bytes from sbrk + mmap)
  usmblks:            0
  fsmblks:          448
  uordblks:       83152   (bytes used)
  fordblks:      150320   (bytes free)
  keepcost:      131120   (bytes in releasable chunk)

Number of files: 183
Number of files transferred: 179
Total file size: 1.31M bytes
Total transferred file size: 1.31M bytes
Literal data: 1.31M bytes
Matched data: 0 bytes
File list size: 6.30K
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 350.39K
Total bytes received: 3.43K

sent 350.39K bytes  received 3.43K bytes  707.64K bytes/sec
total size is 1.31M  speedup is 3.69

Barre de progression dans les nouvelles versions de RSYNC?

Je suis tombé sur cette question SF:

ne des réponses mentionné que, dans les versions plus récentes de rsync, il y a maintenant la prise en charge d'une barre de progression. Cela ressemble à ceci:

% ./rsync -a --info=progress2 /usr .
    305,002,533  80%   65.69MB/s    0:00:01  xfr#1653, ir-chk=1593/3594)

Cette barre de progression ne montre toujours pas l'état des fichiers individuels dans le transfert, mais il montre un pourcentage du transfert global qui pourrait être utile.

17
slm

Utilisez-vous rsync en mode Daemon? Le comportement par défaut de RSYNC (sur Debian 6) est de savoir comment vous avez demandé. Cependant, je trouve dans la page d'homme pour rsyncd.conf que le comportement par défaut en mode Daemon est:

Lancement de transfert
[.____] Ce paramètre permet une journalisation par fichier de téléchargement et des téléchargements dans un format un peu similaire à celui utilisé par les démons FTP. Le démon enregistre toujours le transfert à la fin, donc si un transfert est abandonné, aucune mention ne sera faite dans le fichier journal.
[.____] Si vous souhaitez personnaliser les lignes de journalisation, voir le paramètre "Format de journal".

Donc, si vous utilisez RSYNC en mode Daemon, on dirait que vous devrez ajouter la ligne "Transférer la journalisation" à rsyncd.conf.

1
JKim

Je pense que vous avez besoin de ce dont vous avez besoin: https://code.google.com/p/pipeviewer/

0
Tom Aac