pv
を使ってパイプ中を流れたデータ量を確認する
pv
を使えば、パイプをどれだけのデータが流れたのかを確認することができる。
pvでデータ量を確認
$ cat 1024MB.img | pv | gzip > 1024MB.img.gz
22.2MB 0:00:08 [2.78MB/s] [ <=> ]
-s
オプションでデータ量の指定も可能。
-sオプションでデータ量(1024m)を指定
$ cat 1024MB.img | pv -s 1024m | gzip > 1024MB.img.gz
25.1MB 0:00:09 [2.78MB/s] [> ] 2% ETA 0:05:58
pv
の引数としてファイルを指定すれば、 pv
自体が cat
のように振る舞い、データ量なども自動的に設定してくれる。
pvをcatのように利用
$ pv 1024MB.img | gzip > 1024MB.img.gz
32.2MB 0:00:12 [2.67MB/s] [> ] 3% ETA 0:06:09
複数の pv
に名前をつけて、同時に利用することも可能。
source,gzipという名前つきのpvを組み合わせて実行
$ pv -cN source 1024MB.img | gzip | pv -cN gzip > 1024MB.img.gzip
source: 118MB 0:00:02 [85.9MB/s] [=> ] 11% ETA 0:00:15
gzip: 30.9MB 0:00:02 [4.46MB/s] [ <=> ]
参考文献
dd
の進捗状況を確認
まず dd
を実行する。
ddを実行
# dd if=FILE1 of=FILE2
続いて、別のターミナルで pkill -USR1 dd
を実行する。
別ターミナルでpkillを実行
# pkill -USR1 dd
すると、 dd
を実行していたターミナルに進捗状況が表示される。
ddを実行したターミナルに進捗状況が表示される
# dd if=FILE1 of=FILE2
22628489+0 レコード入力
22628489+0 レコード出力
23171572736 バイト (23 GB) コピーされました、 5.8137 秒、 4.0 GB/秒
watch
と組み合わせれば、定期的に進捗状況を表示させることもできる。
watchを使って1秒ごとにpkillする
# watch -n 1 pkill -USR1 dd
参考文献
man dd