我有一个 VPS,我们很快就要关闭它了,所以我想为它创建一个完整的备份。我考虑过 rsync,因为如果我在 google 上搜索 linux 并备份单词,我就会不断被 rsync 击中,所以为什么不呢。:) 然而,问题来了。
我想要备份 VPS 的备份机器无法通过互联网访问。因此,我不能只使用几乎每个人都建议的 SSH 进入 VPS,sudo rsync 几乎所有内容并将备份服务器标记为输出。我想运行一个类似于 dd 的 bash 命令,因此如果我在远程服务器上运行 rsync,我可以将我的本地文件夹标记为输出。另外,我必须提到,不允许使用 root ssh 登录,因此我只能以可以实际转换为 sudo 的用户身份通过 SSH 进入 VPS,但默认情况下它只是一个普通用户。
我想出了以下 rsync 命令:
sudo rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /* /backup/machine/folder
我希望以某种方式使用它,就像我用于克隆的 dd 命令一样,但方式相反:
dd if=/dev/sda bs=4096 | pv | ssh root@<<TargetServer-IP>> ”dd of=/dev/sda bs=4096”
答案1
我喜欢在这里发布问题,因为其中大约 50% 的问题都是我自己回答的。我通常需要几个小时来决定是否将问题上传到这里,然后经过几次静音,我得到了答案。 :) 命令如下:
rsync --dry-run [email protected]:/ -aAXvh --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} /backup/backup/servers/omd
OFC 如果要执行该命令,请从命令中排除 --dry-run。此外,您必须将 SSH 公钥添加到 /root/.ssh/authorized_keys 文件中才能使其正常工作。