我正在尝试为我们的网络设备之一创建磁盘映像,但在保存输出文件时遇到了问题。
这是命令:
ssh [email protected] shell "dd if=/dev/md0 |gzip -1 -" dd of=md0_monSecondary.gz"
屏幕输出一堆乱码,最后显示如下:
Lgzip: can't stat: dd: No such file or directory
gzip: can't stat: of=md0_blah.gz: No such file or directory
我们收到的另一个命令是这样的:
ssh [email protected] shell "dd if=/dev/md0 bs=10M | tail -c +7 | head -c -6 > md0.img"
如果我运行它,我会得到一个错误:
No such command
如果我不带引号运行它
ssh [email protected] shell dd if=/dev/md0 bs=10M | tail -c +7 | head -c -6 > md0.img
我收到一条消息说:
'tail' is not recognized as an internal or external command, operable program or batch file.
我使用这些命令做错了什么?
答案1
如果您使用dd
压缩流但不使用压缩流,则iblock=fullblock
可能会得到损坏的图像。使用cat
(或在本例中为gzip
)并完全消除复杂性要容易得多dd
:
ssh -n [email protected] shell 'gzip </dev/md0' >md0_monSecondary.gz
如果 192.0.0.0 上的服务器确实无法gzip
直接从设备处理,例如,如果它基于 BSD 而不是 Linux,那么请使用它。但仅将此变体用作最后的手段:
ssh -n [email protected] shell 'dd bs=128M if=/dev/md0 | gzip' >md0_monSecondary.gz
shell
命令行的组成部分非常不寻常。我认为这与您使用的服务器类型有关。对于普通服务器,您根本不需要它。
请记住,如果/dev/md0
在复制时仍将其作为文件系统挂载在远程服务器上,则生成的映像很可能已损坏。如果幸运的话,您会立即注意到。如果不是,那么潜在的损坏将一直存在,直到您需要恢复映像为止。