LoginSignup
50
52

More than 5 years have passed since last update.

進捗どうですか? - 時間のかかる処理の進捗を確認

Last updated at Posted at 2014-07-12

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
50
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
50
52