未分类 · 2024年10月12日 0

使用DD命令备份,配合SSH可异地备份

首先时dd备份

dd if=boot.img of=/dev/fd0

把远程主机磁盘备份到本地

ssh user@ip "dd if=/dev/sda | gzip -1 -" | dd of=./backup.gz

把本地磁盘备份到远程主机

dd if=/dev/sda | gzip -1 - | ssh user@ip "dd of=backup.gz"

把远程备份恢复到本地

ssh user@ip "dd if=/path/to/backup.gz" | gunzip | dd of=/path/to/restore

把本地备份恢复到远程主机

dd if=/path/to/backup.gz | ssh user@ip "gunzip | dd of=/dev/sda"

传输文件到本地
这里假设需要备份目标伺服器的 /dev/sda ,这里使用 zstd 进行传输前压缩1

ssh <user name>@<host> "dd bs=1M iflag=fullblock if=/dev/sda status=progress | zstd -16" > sda.zst.img

传输文件回伺服器
这里按照之前的假设原样回档

ssh <user name>@<host>  "zstdcat -- | dd bs=1M iflag=fullblock of=/dev/sda status=progress " < sda.zst.img