ddコマンド実行途中に、何バイトコピーできたかを見る方法

  • 投稿日:
  • by
  • Category:

知り合いと話していた際に、「ddコマンドでディスクをコピーしているとき、scpのようにプログレスバーが表示できたらいいのに」という話を聞きました。
意外と知られていないのですが、USR1シグナルを送ることで途中経過を表示させることが可能です。

[root@wwwxxxxu ~]# dd if=/dev/zero of=/dev/null &
[1] 31092
[root@wwwxxxxu ~]# kill -USR1 31092
7764899+0 records in
7764898+0 records out
3975627776 bytes (4.0 GB) copied, 6.02001 seconds, 660 MB/s
[root@wwwxxxxu ~]# kill -USR1 31092
25123042+0 records in
25123041+0 records out
12862996992 bytes (13 GB) copied, 17.8137 seconds, 722 MB/s
[root@wwwxxxxu ~]# kill -USR1 31092
43986419+0 records in
43986418+0 records out
22521046016 bytes (23 GB) copied, 31.3739 seconds, 718 MB/s
[root@wwwxxxxu ~]# kill 31092
[1]+ Terminated dd if=/dev/zero of=/dev/null
[root@wwwxxxxu ~]#

ddを利用する際は大きなファイルのことが多いので、途中で経過が見えるだけでもストレスが減るのではないでしょうか。
ちなみに私は、上記の出力を元にプログレスバーを表示するスクリプトを作りました。

トラックバック(1)

馬写真日記 - 2年 (2010年12月10日 00:54)

ほんとだ…。 続きを読む

コメント(2)

utaani

バックグラウンドじゃない時は、CTRL-Tが使えますね。

say

Pipe Viewer (http://www.ivarch.com/programs/pv.shtml) とこんな感じに組み合わせることもできそうです

> dd if=/dev/zero count=1024 bs=1M | pv -s 1g > x
463MB 0:00:15 [23.2MB/s] [=======================================> ] 45% ETA 0:00:18