私はdd
に1 TBのハードドライブをいくつか必要とします。彼らはクローンを作るのに数時間かかっており、彼らがどれだけ速く進んでいるか、どれだけしたか、残りをコピーするのにどれくらいの時間がかかるかを知ることができる方法があるのだろうかと思っていました。
表示されるのは、コマンドが実行されている端末だけです。少なくともps -e
を実行すると、表示されるCPU使用量からdd
が機能していることがわかりますが、その処理量や完了までにかかる時間を知る方法はありません。
種類は私を夢中にさせます。
パイプストリームに対してプログラムpv
を使用して、転送されたデータのライブレポートを表示します。パイプを使用するあらゆるアプリケーションに使用できます。また、USB、外部ディスク、ネットワークコンピューターなどへの転送速度を確認するための優れたツールでもあります。
dd if=infile | pv > outfile
または、直接コピーするには、これを使用します:
pv infile > outfile
例:
Sudo pv /dev/sda1 > /home/user/sda1.ext4.img
典型的な。何かを尋ねると、なんとかして答えを見つけます(何時間も探していたとしても、魔法のように質問を作成した後で見つけます-.-)。とにかく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時間かかることを知っています。
Macでkillを使用して情報を表示する場合、-INFO
フラグの代わりに-USR1
フラグを渡す必要があります。また、ddプロセスが実行されている端末に情報が表示されることを忘れないでください。新しいタブを開いてkill -INFO $PID
(ここで、$PID
はps -e | grep dd
を使用して見つけた番号)と入力します、dd
が実行されているタブに戻って出力を確認する必要があります。
これで、出力をプレーンバイトではなくGBまたはMBとして表示する方法がわかれば...
dcfldd
と呼ばれるもう1つの拡張ddがあります。これは、あなたが求めているように、多くの面白いことをします http://dcfldd.sourceforge.net/
Sudo apt-get install dcfldd
dd
の代わりにdcfldd
と書く