[Linux] rsyncで進捗を確認する
やり方¶
要約
- 時間経過で変わる可能性のある進捗でもいいなら
rsync -a --info=progress2
- 時間が多少かかっても確実な進捗が欲しいなら
rsync -a --info=progress2 --no-inc-recursive
方法1(進捗は適宜でもいいですよ派)¶
rsync では進捗状況を確認するオプションに ver.3.10 から対応 した。 そのオプションは--info=progress2
である。rsync -a --info=progress2 /what/to/backup /where/to/backup
方法2(最初からしっかりした進捗出してくれないと意味ないよ派)¶
進捗表示がずれてしまう問題の原因¶
原因は、 rsync がver.3.0.0から導入したrecursive algorithmというアルゴリズム。 recursive algorithmは転送中にリアルタイムにディレクトリ構造を把握していく非同期な処理であり、 非同期なので最初にきっかりと結果が分かるわけではなく裏でこそこそとディレクトリ構造を把握して進捗状況を正確なものへと更新していく。 もちろん、非同期であるから転送開始自体は速やかに行われるという利点があるのだけど、進捗状況をちゃんと確認したい人間にとっては厄介かも。そこで --no-inc-recursive ですよ¶
そこで利用するのが--no-inc-recursive
オプション。rsync -a --info=progress2 --no-inc-recursive /what/to/backup /where/to/backup
ただし、このオプションを指定すると進捗表示のための計算が最初に入る。 転送する対象が大きいあるいは深いディレクトリであればあるほどに転送が始まるまでの時間が結構かかる、という問題点はある。
※ 本記事は移転予定のサイトにほぼ同一の内容の記事があります(rsyncで進捗を確認する方法)。将来的にはこちらは削除される予定です。
コメント
コメントを投稿