Ssh

如何在本地機器上使用 SSH dd 遠端磁碟並保存到本地磁碟

  • January 21, 2022

如何在本地電腦上使用 SSH 創建遠端磁碟的備份並將其保存到本地磁碟?


我嘗試了以下方法:

ssh hostname@my.ip.address "sudo dd if=/dev/sdX " | \
 dd of=/home/username/Documents/filename.image`

但是,我收到以下錯誤:

沒有 tty 並且沒有指定 askpass 程序

如果您的意圖是通過 SSH 將遠端電腦的HDD A備份到本地電腦 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

監測方法?

  1. ssh通過在另一個終端和文件中登錄ls -l以查看它的大小。
  2. 您可以使用pv來監控大型 dd 操作的進度,例如,對於上面的遠端範例,您可以執行以下操作:
$ dd if=/dev/sda | gzip -1 - | pv | ssh user@local dd of=image.gz
  1. 發送“SIGUSR1”信號dd,它將列印統計資訊。就像是:
$ pkill -USR1 dd
  1. 使用dd’s 進度開關,status=progress

參考

上面提到的監控方法最初是通過@Ryan & @bladt和我自己的評論留下的。我已將它們移到答案中以使它們更加明顯。

引用自:https://unix.stackexchange.com/questions/132797