rsyncを実行しているときにプログレスバーを表示するにはどうすればよいですか?


31

リポジトリとしてUbuntu 12.04を使用rsyncしていますが、コマンドラインから使用するときに進行状況バーを表示したいと思います。この記事で提案されたオプション(-P)を試しましたが、進行状況バーを表示し、Grsyncを使用しないことを好みます。rsync -P source dest現在使用しています。


これを読みましたか?stackoverflow.com/questions/238073/...
AB

迅速な対応に感謝します。これを研究することを楽しみにしています。
ジョセフ・スミス

これは良いスタートでしたが、rsyncが機能しているときにプログレスバーを更新する方法を知る必要があります。友人は、サーバーサイズを実装し、パイプを使用して監視コマンドを実装する必要があると言いました。
ジョセフ・スミス

答えがあります:)
AB

回答:


7

これはどう?

rsync_param="-av"
rsync "$rsync_param" a/ b |\
     pv -lep -s $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)
  • $rsync_param

    パラメーターの二重入力を避ける

  • $(rsync "$rsync_param"n a/ b | awk 'NF' | wc -l)

    完了するステップの数を決定します。

  • a/ b

    1. a/ ソースです
    2. b ターゲットです

1
@JosephSmithあなたは私の答えに満足しましたか?それから私に賛成票をください(∧)。私があなたの問題を解決できたなら、あなたが私の答えに印を付けるといいでしょう(✓)。;)
AB

私はこれを数日前に大きな笑顔で受け入れました。私は選択を解除し、再び受け入れました。十分なクレジットがないため、賛成票を投じることができないと思います。助けてくれてありがとう。
ジョセフ・スミス

エラーが発生する理由、ファイルやディレクトリが見つかりませんか?私が実行するコマンドは次のとおりです:root @ cto:/ repo / ubuntu#rsync "$ rsync_param" -a --prune-empty-dirs --exclude "* .iso" archive.ubuntu.com/ubuntu/indices/ / repo / Ubuntu /インデックス| pv -lep -s $(rsync "$ rsync_param" n archive.ubuntu.com/indices/ / repo / ubuntu / indices | awk 'NF' | wc -l)
ジョセフスミス

1
"$rsync_param"nかなり奇妙です。引用符は、スペースのないオプションでnのみ機能することを意味し、末尾に付加すると、短いオプションでのみ機能することを意味します。はるかに明確で簡単なのは単にです$rsync_param -n。これは、の形式に依存せずにrsync_param
ドライラン

それは転送速度が表示されません気づい除いて、最初の時間を働いていた
Ciasto piekarz

36

rsyncには--info、現在の進行状況だけでなく、転送速度と経過時間も出力するために使用できるオプションがあります。

--info=FLAGS            fine-grained informational verbosity

使用方法の説明は-P、manページのオプションの下にあります。

-P     The -P option is equivalent to --partial --progress.  Its purpose is to
       make it much easier to specify these two options for a long transfer that
       may be interrupted.

       There is also a --info=progress2 option that outputs statistics based on
       the whole transfer, rather than individual files.  Use this flag
       without  out‐putting  a  filename  (e.g. avoid -v or specify --info=name0)
       if you want to see how the transfer is doing without scrolling the screen 
       with  a  lot  of names.   (You  don’t  need  to specify the --progress
       option in order to use --info=progress2.)

したがって、次のとおりです。

rsync -r --info=progress2 --info=name0 "$src" "$dst"

次の結果が出力され、継続的に更新されます。

18,757,542,664 100%   65.70MB/s    0:04:32 (xfr#1389, to-chk=0/1510)

転送が開始されると、チャンクの合計数、したがって現在の進行状況が、同期のためにより多くのファイルが検出されるため、再帰オプションが使用されるときに変更される可能性があることに注意してください


16

あなたは使用することができます--progressし、--statsパラメータを設定します。

rsync -avzh --progress --stats root@server:/path/to/file output_name

root@server's password: 
receiving incremental file list
file
         98.19M  54%    8.99MB/s    0:00:08

2
これはmacOSでうまくいきました。
マンゴー

2

これは最終的に機能しました:

rsync "$rsync_param" -a --prune-empty-dirs --exclude "*.iso" rsync://archive.ubuntu.com/ubuntu/indices/ /repo/ubuntu/indices | pv -lep -s $(rsync "$rsync_param"n rsync://archive.ubuntu.com/indices/ /repo/ubuntu/indices | awk 'NF' | wc -l)

1

のバージョンがオプションをrsync受け入れない--info=progress2場合は、次を使用できますtqdm

インストールする:

pip install tqdm

使用するには:

$ rsync -av / source / dest | tqdm --unit_scale | wc -l
10.0Mit [00:02、3.58Mit / s]

0

うん、ジョンが言ったことをやる:--info=progress2オプションを使う。しかし、rsyncのバージョンが古すぎてこのオプションをサポートしていない場合はどうすればよいですか?回答:rsyncをアップグレードしてください!

rsyncUbuntuのソースからビルドする方法は次のとおりです。

(Ubuntu 16.04でテスト済み)

  1. :rsyncの最新バージョンのダウンロードhttps://download.samba.org/pub/rsync/src/を。例:「rsync-3.1.3.tar.gz」。正しくビルドできるように、スペースなしのディレクトリに保存してください。
  2. フォルダーエクスプローラーで、右クリックして[ここに抽出]に移動します。
  3. 抽出されたフォルダーを入力します(例: "rsync-3.1.3")
  4. フォルダマネージャで画面を右クリックし、「ターミナルで開く」に進みます。または、コマンドラインで手順2〜4を手動で実行します。最終的にはcdrsyncソースコードを含むこの抽出されたディレクトリに移動するだけです。
  5. の現在のバージョンを確認してくださいrsync。後で実際に更新されたことがわかるように、これをメモしてください。

    rsync --version
    
  6. 必要なツールをインストールします。

    sudo apt update
    sudo apt install yodl
    
  7. ビルド:

    ./configure
    make
    sudo make install
    
  8. 更新されたことを確認します。

    rsync --version
    

    サンプル出力:

    $ rsync --version
    rsync  version 3.1.3  protocol version 31
    Copyright (C) 1996-2018 by Andrew Tridgell, Wayne Davison, and others.
    Web site: http://rsync.samba.org/
    Capabilities:
        64-bit files, 64-bit inums, 64-bit timestamps, 64-bit long ints,
        socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
        append, no ACLs, xattrs, iconv, symtimes, prealloc
    
    rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
    are welcome to redistribute it under certain conditions.  See the GNU
    General Public Licence for details.
    
  9. 「progress2」のマニュアルページを検索します。これで、--info=progress2オプションにアクセスできるようになります。

    man rsync
    

    ...次に/キーを押して入力しprogress2ます; Enterキーを押して検索します。n探しているエントリが見つかるまで「n」extを押します。

    --info=progress2個々のファイルではなく、転送全体に基づいて統計を出力するオプションもあります。多くの名前で画面をスクロールせずに転送がどのように行われているかを確認したい場合は、ファイル名を出力せずにこのフラグを使用します(例:回避 -vまたは指定--info=name0)。(--progressを使用するためにオプションを指定する必要はありません--info=progress2。)

参照:「rsyncの使用方法」、Gabriel Staplesによる:https : //superuser.com/questions/1271882/convert-ntfs-partition-to-ext4-how-to-copy-the-data/1464264#1464264

部分参照:

  1. http://www.beginninglinux.com/home/backup/compile-rsync-from-source-on-ubuntu
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.