如何备份完整的 Centos 服务器?

ben*_*ail 24 backup centos

几周前我从专用服务器切换到 VPS。现在一切都在 VPS 上运行良好,我想关闭专用服务器并关闭我在托管公司的帐户。

为了安心和更安全,我想在停止服务器之前对其进行完整备份。

最好的备份是我可以浏览的备份,如果我发现我需要备份中的某些内容。

命令行的最佳解决方案是什么?

更新 :

媒体 : 网络

peh*_*hrs 29

用于此目的的最佳工具可能是 dump,它是一个标准的 linux 工具,将为您提供整个文件系统。我会做这样的事情:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz
Run Code Online (Sandbox Code Playgroud)

这将执行 / 的文件系统转储(确保您不需要转储任何其他挂载!),使用 gzip 压缩它并将其 ssh 到远程服务器 (backupserver.example.com),将其存储在 /backup/ . 如果您以后需要浏览使用恢复的备份:

restore -i
Run Code Online (Sandbox Code Playgroud)

另一种选择,如果您无权访问 dump 是使用 tar 并执行类似的操作

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .
Run Code Online (Sandbox Code Playgroud)

但是 tar 也不处理文件系统中的更改。

  • 我得到这个`-bash: /sbin/dump: No such file or directory` (2认同)

Raf*_*ski 11

如果您想从 Linux 备份到 Linux,我不会使用转储,因为当您需要访问备份文件中的某些内容时会很不方便。在大多数情况下,仅使用rsyncSSH 进行完整的系统备份应该没问题:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder
Run Code Online (Sandbox Code Playgroud)

这将使所有内容保持重要让您无需额外步骤即可浏览备份。

--delete如果您在同一个备份文件夹中多次运行此选项,您可能需要添加 rsync 的选项。在这种情况下,请确保源路径不以 结尾/*,否则此选项仅对源目录子目录内的文件有效,而对直接驻留在源目录内的文件无效。