web-dev-qa-db-ja.com

「dd」クローン作成にかかる時間を知るにはどうすればよいですか?

私はddに1 TBのハードドライブをいくつか必要とします。彼らはクローンを作るのに数時間かかっており、彼らがどれだけ速く進んでいるか、どれだけしたか、残りをコピーするのにどれくらいの時間がかかるかを知ることができる方法があるのだろうかと思っていました。

表示されるのは、コマンドが実行されている端末だけです。少なくともps -eを実行すると、表示されるCPU使用量からddが機能していることがわかりますが、その処理量や完了までにかかる時間を知る方法はありません。

種類は私を夢中にさせます。

24
Luis Alvarado

パイプストリームに対してプログラムpvを使用して、転送されたデータのライブレポートを表示します。パイプを使用するあらゆるアプリケーションに使用できます。また、USB、外部ディスク、ネットワークコンピューターなどへの転送速度を確認するための優れたツールでもあります。

dd if=infile | pv > outfile

または、直接コピーするには、これを使用します:

pv infile > outfile

例:

Sudo pv /dev/sda1 > /home/user/sda1.ext4.img
21
Sepero

典型的な。何かを尋ねると、なんとかして答えを見つけます(何時間も探していたとしても、魔法のように質問を作成した後で見つけます-.-)。とにかく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

これは、別のターミナルで、確認するDDのプロセスIDを使用して次の行を実行することを意味します。たとえば、私の場合のプロセスID 4112です。プロセスIDを確認するには、ps -eと入力してddまたはps -e|grep ddを探し、先頭の数字を見てください。その番号を書き留めてから、別のターミナルウィンドウに入力しますkill -USR1 4112; sleep 1;これにより、開始から経過した秒数、コピーされた量がわかります。少なくとも今では、1TBの情報を約40MB/sでコピーするのに約8時間かかることを知っています。

29
Luis Alvarado

Macでkillを使用して情報を表示する場合、-INFOフラグの代わりに-USR1フラグを渡す必要があります。また、ddプロセスが実行されている端末に情報が表示されることを忘れないでください。新しいタブを開いてkill -INFO $PID(ここで、$PIDps -e | grep ddを使用して見つけた番号)と入力します、ddが実行されているタブに戻って出力を確認する必要があります。

これで、出力をプレーンバイトではなくGBまたはMBとして表示する方法がわかれば...

10
bobo

dcflddと呼ばれるもう1つの拡張ddがあります。これは、あなたが求めているように、多くの面白いことをします http://dcfldd.sourceforge.net/

  1. Sudo apt-get install dcfldd
  2. ddの代わりにdcflddと書く
4
TheNano