MvG*_*MvG 8 linux ssh backup block-device disk-image
出于备份的目的,我想通过 ssh 链接传输(几个)整个磁盘分区。源是块特殊设备,目标应该是常规文件。但是,常用工具似乎不适合于此:
scp 会抱怨 not a regular filetar 将尝试在目标端重新创建设备 inodersync 说 skipping non-regular file我目前最好的选择是nc通过端口转发,或cat在每个分区的远程端调用一次,这意味着每个分区输入一个密码,除非设置公钥。有没有更优雅的解决方案?
环境可以是任何合理的Linux live系统。目前我碰巧有一个 Debian wheezy,但它不应该太具体。
fro*_*utz 10
您可以通过 SSH 进行管道传输。使用示例dd:
dd bs=1M if=/dev/disk | ssh -C target dd bs=1M of=disk.img
Run Code Online (Sandbox Code Playgroud)
如果传输过程中网络连接中断,如果您知道复制了多少,则可以恢复。例如,如果您确定至少1000MiB已经传输(检查 的文件大小disk.img):
dd bs=1M skip=1000 if=/dev/disk | ssh -C target dd bs=1M seek=1000 of=disk.img
Run Code Online (Sandbox Code Playgroud)
dd 只是一个例子,只要它们与管道一起工作,它就可以与其他命令一起使用。
如果您尝试通过以太网链路传输,我会安装缓冲程序(如果您的发行版中尚未存在)。它就像 dd 但更好更快。基本上它被编程为使用共享内存缓冲区进行并发读取和写入。我曾经用它来进行磁带转储,它节省了大约 10% 的传输时间。命令行是:
buffer -i /dev/disk -m 100m | ssh -C target buffer -o disk.image -m 100m
Run Code Online (Sandbox Code Playgroud)
还有更多可用选项,默认块大小为 10K。上面分配了 100MBytes 共享内存,您可能需要调整此参数或您的配置以允许这样做。
警告:以这种方式传输活动分区将会出现问题。因此请确保要传输的分区未安装。
| 归档时间: |
|
| 查看次数: |
3608 次 |
| 最近记录: |