Rsyncは個々のファイルの進行状況を表示します


21

rsyncを使用して、非常に大きなファイル(20Gb)をアップロード/ダウンロードしています。--progressオプションを知っていますが、私の場合はそれが何をするかは最後に結果を表示するだけです。

私の問題は、不安定な接続中に、それがまだダウンロード/アップロードされているのか、何かがおかしいのかわからないことです。個々のファイルの進行状況バーを表示する方法はありますか?デフォルトでwgetが行うことと似た何か

ありがとう!


4
私は10年以上rsyncを使用してきましたが、この質問を一度も行ったことがないとは信じられません。
slm

回答:


17

これはあなたが望んでいることかもしれません。

% 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/

スイッチは次のように故障します。

  • -avvz =アーカイブ、冗長x 2、圧縮
  • --times =変更時間を保存
  • --stats =ファイル転送の統計情報を提供
  • --checksum = mod-timeとサイズではなく、チェックサムに基づいてスキップ
  • -人間が読める =人間が読める形式で出力する数値
  • --acls = ACLを保存します(-pを意味します)
  • --itemize-changes =すべての更新の変更要約を出力する
  • --progress =転送中に進行状況を表示
  • --out-format = '[%t] [%i](最終変更:%M)(バイト:%-10l)%-100n'
    • %t =現在の日付時刻
    • %i =更新対象の項目別リスト
    • %M =ファイルの最終変更時刻
    • %-10l =ファイルの長さ(バイト)(-10は位置合わせと精度のため)
    • %-100n =ファイル名(短い形式。dirの末尾の「/」)(-100は位置合わせと精度のため)

注:のためのmanページを参照してくださいrsyncrsyncd.conf上記のスイッチの完全な詳細については、を。

上記のコマンドは、次のトランスクリプトを生成します。

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

rsyncの新しいバージョンのプログレスバー?

私はこのSFの質問に出会いました:

回答の1つでは、新しいバージョンでrsyncはプログレスバーがサポートされるようになりました。次のようになります。

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

この進行状況バーには、転送中の個々のファイルのステータスは表示されませんが、全体的な転送の割合が表示されるので役立つ場合があります。


1
答えてくれてありがとう。まだ探しているものではありません。本当に必要なのは、個々のファイル(glib-2.0 / glib-object.hなど)をダウンロードするときです。このファイルの進行状況バーのみが表示されます。glib-2.0 / glib-object.hが20Gbであると想像してください。まだダウンロード中であるか、どのくらいの時間が残っているかをどのように確認しますか?
サーモン


1

デーモンモードでrsyncを使用していますか?(Debian 6での)rsyncのデフォルトの動作は、あなたが要求した方法です。ただし、rsyncd.confのmanページで、デーモンモードでのデフォルトの動作は次のようになっています。

転送ログ
このパラメータは、ftpデーモンで使用されるものといくらか似た形式で、ダウンロードおよびアップロードのファイルごとのログを有効にします。デーモンは常に転送を最後に記録するため、転送が中止された場合、ログファイルには何も記載されません。
ログ行をカスタマイズする場合は、「ログ形式」パラメーターを参照してください。

そのため、デーモンモードでrsyncを使用している場合は、rsyncd.confに「transfer logging」という行を追加する必要があるようです。


いいえ、デーモンモードではなく、ファイルの進行状況バーは表示されず、プロセス全体の概要だけが表示されます
サーモン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.