リポジトリとしてUbuntu 12.04を使用rsync
していますが、コマンドラインから使用するときに進行状況バーを表示したいと思います。この記事で提案されたオプション(-P
)を試しましたが、進行状況バーを表示し、Grsyncを使用しないことを好みます。rsync -P source dest
現在使用しています。
リポジトリとしてUbuntu 12.04を使用rsync
していますが、コマンドラインから使用するときに進行状況バーを表示したいと思います。この記事で提案されたオプション(-P
)を試しましたが、進行状況バーを表示し、Grsyncを使用しないことを好みます。rsync -P source dest
現在使用しています。
回答:
これはどう?
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
a/
ソースですb
ターゲットです"$rsync_param"n
かなり奇妙です。引用符は、スペースのないオプションでn
のみ機能することを意味し、末尾に付加すると、短いオプションでのみ機能することを意味します。はるかに明確で簡単なのは単にです$rsync_param -n
。これは、の形式に依存せずにrsync_param
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)
転送が開始されると、チャンクの合計数、したがって現在の進行状況が、同期のためにより多くのファイルが検出されるため、再帰オプションが使用されるときに変更される可能性があることに注意してください
うん、ジョンが言ったことをやる:--info=progress2
オプションを使う。しかし、rsyncのバージョンが古すぎてこのオプションをサポートしていない場合はどうすればよいですか?回答:rsyncをアップグレードしてください!
rsync
Ubuntuのソースからビルドする方法は次のとおりです。(Ubuntu 16.04でテスト済み)
cd
、rsync
ソースコードを含むこの抽出されたディレクトリに移動するだけです。の現在のバージョンを確認してくださいrsync
。後で実際に更新されたことがわかるように、これをメモしてください。
rsync --version
必要なツールをインストールします。
sudo apt update
sudo apt install yodl
ビルド:
./configure
make
sudo make install
更新されたことを確認します。
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.
「progress2」のマニュアルページを検索します。これで、--info=progress2
オプションにアクセスできるようになります。
man rsync
...次に/
キーを押して入力しprogress2
ます; Enterキーを押して検索します。n
探しているエントリが見つかるまで「n」extを押します。
--info=progress2
個々のファイルではなく、転送全体に基づいて統計を出力するオプションもあります。多くの名前で画面をスクロールせずに転送がどのように行われているかを確認したい場合は、ファイル名を出力せずにこのフラグを使用します(例:回避-v
または指定--info=name0
)。(--progress
を使用するためにオプションを指定する必要はありません--info=progress2
。)