それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

dd で進捗を表示する status=progress

dd の進捗を表示する事ができる

ふとしたことで status の引数を知りました

takuya@Desktop$ dd if=/dev/zero of=out.img bs=1M count=1000  status=progress
711983104 bytes (712 MB, 679 MiB) copied, 1.00343 s, 710 MB/s
1000+0 records in
1000+0 records out
1048576000 bytes (1.0 GB, 1000 MiB) copied, 1.48507 s, 706 MB/s

man からの抜粋

       status=LEVEL
              The  LEVEL of information to print to stderr; 'none' suppresses everything but error messages,
              'noxfer' suppresses the final transfer statistics, 'progress' shows periodic transfer  statis-
              tics

status をつけたときの表示のタイミング

bs=1M なら 1Mを書くたびに progressが実行される。

## 1G を4回書いたとき=>4回前後
sudo dd if=/dev/zero of=/swap.img bs=1000M count=4 status=progress
## 10Mを 400回書いたとき=>400回前後
sudo dd if=/dev/zero of=/swap.img bs=10M count=400 status=progress

速度的には、bsが大きい方がわずかに早いと思うんだが、progressを見たいときは countを多めにしたほうがぱっと見れる。

その他の方法

通常は SIGNAL USR1

長くかかるときは シグナルを送ればいいんだけど、 status=progress でもいいよね

dd_rescue もいいね

dd より dd_rescue 使うことが多いわ。

2018/02/27 追加

pv コマンドをつかって流してあげたほうが再利用しやすいかも

コマンド(lzop)の圧縮展開の進捗どうですかー?(pvコマンドで進捗を見る) - それマグで!

関連資料

dd でディスクをコピーするよく使う例 - それマグで!

dd_rescueコマンドで、HDDのバックアップ が楽になる - それマグで!