回答:
リモートコンピューターのHDD AをSSH経由でローカルコンピューターのHDDにある単一のファイルにバックアップすることが目的の場合、次のいずれかを実行できます。
リモートコンピューターから実行
$ dd if=/dev/sda | gzip -1 - | ssh user@local dd of=image.gz
ローカルコンピューターから実行
$ ssh user@remote "dd if=/dev/sda | gzip -1 -" | dd of=image.gz
$ ssh skinner "dd if=/dev/sda5 | gzip -1 -" | dd of=image.gz
208782+0 records in
208782+0 records out
106896384 bytes (107 MB) copied, 22.7608 seconds, 4.7 MB/s
116749+1 records in
116749+1 records out
59775805 bytes (60 MB) copied, 23.9154 s, 2.5 MB/s
$ ll | grep image.gz
-rw-rw-r--. 1 saml saml 59775805 May 31 01:03 image.gz
ssh別のターミナルとls -lファイルにログインして、サイズを確認してください。pvたとえば、上記のリモートの例では、大規模なdd操作の進行状況を監視するために使用できます。
$ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
「SIGUSR1」シグナルを送信すると、dd統計が出力されます。何かのようなもの:
$ pkill -USR1 dd
上記の監視方法は、もともと@Ryan&@bladtと私自身のコメントによって残されていました。それらをより明確にするために答えに移動しました。
pvがローカルマシンからの使用例を教えてもらえますか?ありがとうございました。
status=progressオプションもあります。したがって、pkill -USR1 ddもう別の端末から実行する必要はありません。
表示されるエラーは、リモートでsudoを使用しているためです(パスワードの入力を求められますが、入力するttyがありません)。一方、通常のユーザーddとしては、他の回答で提案されているように単純に使用することはできません(デバイスに必要な権限がありません)。ddパスワードなしでsudoとして実行する権利を自分に与えることで問題を解決できます。これを行うには、sudoersファイルを編集します(リモートで!):
sudo visudo
次の行を追加します。
userfoo ALL=(ALL) NOPASSWD: /bin/dd if=/dev/sdX
次を発行できます:
ssh userfoo@host "sudo /bin/dd if=/dev/sdX" | dd of=test.dd
動作するはずです。sudoersでより一般的なエントリを作成して、dd任意のパラメータで実行できますが、この無料のアクセス許可を必要最小限に抑える方が賢明です。
ONEのハードドライブをリモートコンピューターTWOのストレージにバックアップする)でこれを試しました。<br /> [root @ ONE]#dd if = / dev / sda1 | ssh root @ TWOdd of=/root/Public/ONE/sda1.img<br /> 409600 + 0レコード409600 + 0レコード209715200バイト(210 MB)コピー、0.894929 s、234 MB / s stdinは端末root @ TWOのパスワードではないため、擬似端末は割り当てられません:問題は、/root/Public/ONE/sda1.imgファイルが予想どおりONEではなくに作成さTWOれたことです。どうすれば修正できますか?