Answers:
从源复制到目标已运行sshd的目标:
dd if=/dev/sda | gzip | ssh root@target 'gzip -d | dd of=/dev/sda'
当目标未运行sshd时,通过sshd_host从源复制到目标。
nc -l -p 62222 | dd of=/dev/sda bs=$((16 * 1024 * 1024))
ssh -L 62222:target:62222 sshd_host &
资源: dd if=/dev/sda | nc -w 3 localhost 62222
dd - if =是源,of =是目的地,bs =是块大小。不同的块大小可以提高性能。通常,16是一个相当合理的起点。您也可以使用count =指示要复制多少块。
nc -- p表示用于服务的端口。 -l用于启动服务。 -w设置退出前等待管道中数据的时间。
ssh -- L在远程主机上设置隧道。参数的格式为local_port:target_host:target_port
。您的本地程序(nc)连接到local_port,此连接通过隧道连接并连接到target_host上的target_port。
定义的选项仅用于此目的。有关更多详细信息,请参见手册页。
一些注意事项:
source machine dd -> nc -> ssh -> ssh tunnel -> sshd server -> nc on target -> dd
如果要使用不带ssh的netcat。我认为这是最快的方法,而不是安全的方法,您可以像这样复制和还原整个磁盘:
在IP为192.168.0.1的计算机A上
cat /dev/hdb | nc -p 9000
在计算机B上
nc -l 192.168.0.1 9000 > /dev/hdb
请记住,根据man nc,-l选项为:
-l用于指定nc应该侦听传入的连接,而不是发起与远程主机的连接。将此选项与-p,-s或-z选项一起使用是错误的。
不需要netcat。
在src机器上运行:
dd if=/dev/sdX bs=1M | ssh root@dstMachine " dd of=/dev/sdY bs=1M"
我假设没有安装sdX和sdY上的任何分区。您可以使用knoppix或其他类似的现场发行版来启动两个设备。
dd-从if [如果未提供-从stdin 接收数据,则从stdin]获取数据,将数据发送到of [如果未提供-数据发送至stdout]。bs-块大小...将加快速度。
ssh-执行远程框上引号中提供的命令,所有泵送到ssh stdin的数据都将通过隧道传送到远程计算机,并作为stdin批准到那里执行的命令。
我尝试了上面提供的选项的组合,并与您分享结果。结合使用dd块大小,gzip和gzip压缩算法最快或最慢。
如您所见,当结合使用快速算法和1M块大小时,gzip仅给了我一个改进。
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 326.045 s, 39.5 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | gzip --fast | ssh hyp5 'gzip -d | dd of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 370.158 s, 34.8 MB/s
time dd if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 370.274 s, 34.8 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | ssh hyp5 dd bs=1M of=/dev/HypGroup00/stage
12884901888 bytes (13 GB) copied, 372.906 s, 34.6 MB/s
time dd bs=1M if=/dev/HypGroup00/stage-snapshot | gzip | ssh hyp5 'gzip -d | dd bs=1M of=/dev/HypGroup00/stage'
12884901888 bytes (13 GB) copied, 520.116 s, 24.8 MB/s
使用了两个快速服务器,这些服务器通过LVM通过本地磁盘通过企业GigE交换机与GigE连接。
看起来您在这里用大锤打碎了坚果-也许更好的比喻是试图用剪刀剪草坪:)
我强烈建议您看看其中有一些工具可以完成这样的工作,除非您有充分的理由自己进行这项工作。
Trinity Rescue Kit是一个免费的liveCD,它支持通过多播进行映像驱动,并且可以做您想做的事情(或者实际上其他任何人都在同一行思考),而无需使用全孔成像系统。