アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
ddコマンド採ったイメージをddコマンドでHDDに書き込みたいのですがサイズが大きいため時間がかかります。そこで現在どこまで書き込んだか割合(○%)や簡単なプログレスバーを表示させたいと考えています。
ddの書き込み途中でどれだけ書き込んだかの数値を取得する方法はありますでしょうか。

コマンドの実行は「dd if=imagefile of=/dev/hda1」のような感じです。

よろしくお願い致します。

A 回答 (1件)

dd --help してみると、



Sending a USR1 signal to a running `dd' process makes it
print I/O statistics to standard error and then resume copying.

$ dd if=/dev/zero of=/dev/null& pid=$!
$ kill -USR1 $pid; sleep 1; kill $pid
18335302+0 records in
18335302+0 records out
9387674624 bytes (9.4 GB) copied, 34.6279 seconds, 271 MB/s

と、kill で USR1 シグナルを dd コマンドに与えることで、何バイト書き込んだかを標準エラー出力に表示させることができるようです。後はこれを標準入力にリダイレクトさせて、awk 等でサイズ部分を拾って、元ファイルのサイズと比較すれば、書き込みサイズの割合を表示させられると思います。
    • good
    • 1
この回答へのお礼

早速の回答ありがとうございます。

まさにご回答頂いた内容を求めておりました。
教えてgooを利用していてひさしぶりに感動する回答を頂きました。
ありがとうございました。

お礼日時:2007/07/19 23:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!