web-dev-qa-db-ja.com

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

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

28
Joseph Smith

これはどう?

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はターゲットです
7
A.B.

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

--info=FLAGS            fine-grained informational verbosity

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

-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)

転送が開始すると、チャンクの総数、したがって現在の進行状況が、同期のためにさらにファイルが検出されるため、再帰オプションを使用すると変更されることに注意してください

32
Jon

--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
13
fugitive

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

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)
2
Joseph Smith

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

インストールする:

pip install tqdm

使用するには:

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

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

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

(Ubuntu 16.04でテスト済み)

  1. Rsyncの最新バージョンをダウンロードします: https://download.samba.org/pub/rsync/src/ 。例:「rsync-3.1.3.tar.gz」。正しくビルドされるように、スペースなしのディレクトリAT ALLに保存します。
  2. エクスプローラーでフォルダーを右クリックし、「ここに抽出」に移動します。
  3. 抽出されたフォルダーを入力します(例: "rsync-3.1.3")
  4. フォルダマネージャで画面を右クリックし、「ターミナルで開く」に進みます。または、コマンドラインで手順2〜4を手動で実行します。最終的には、cdソースコードを含むこの抽出ディレクトリにrsyncedする必要があります。
  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. Manページで「progress2」を検索します。これで、--info=progress2オプションにアクセスできるようになります。

    man rsync
    

    ...次に/キーを押してprogress2と入力します。 Enterキーを押して検索します。探しているエントリが見つかるまで、 'n'ext一致のnを押します。

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

部分参照:

  1. http://www.beginninglinux.com/home/backup/compile-rsync-from-source-on-ubunt
0
Gabriel Staples