几周前我从专用服务器换成了 VPS。现在 VPS 上一切运行正常,我想关闭专用服务器并注销托管公司的帐户。
为了安心并确保更安全,我想在停止服务器之前对其进行完整备份。
最好的办法是,如果我发现我需要备份中的某些内容,我可以浏览备份。
命令行中最好的解决方案是什么?
更新 :
媒介:网络
答案1
最适合此目的的工具可能是 dump,这是一个标准的 Linux 工具,可为您提供整个文件系统。我会这样做:
/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish [email protected] dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz
这将执行 / 的文件系统转储(确保您不需要转储任何其他挂载!),使用 gzip 压缩它并将其 ssh 到远程服务器(backupserver.example.com),将其存储在 /backup/ 中。如果您稍后需要浏览备份,请使用 restore:
restore -i
另一种选择是,如果你无权访问 dump,则使用 tar 并执行类似操作
tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .
但是 tar 也不能处理文件系统中的变化。
答案2
如果你想从 Linux 备份到 Linux,我不会使用 dump,因为当你需要访问备份文件中的内容时,它很不方便。只需使用rsync
SSH 即可进行完整的系统备份大多数情况下应该没问题:
rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder
这将使所有重要的事情和让您无需额外步骤即可浏览备份。
--delete
如果您要多次对同一备份文件夹运行此命令,则可能需要添加 rsync选项。在这种情况下,请确保源路径不以 结尾/*
,否则此选项将仅对源目录子目录中的文件有效,但对直接位于源目录中的文件无效。
答案3
您要将备份存储在什么介质上?如果您通过网络备份,我会在源服务器上安装 sshfs/nfs 目标并运行如下命令:
tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>
请注意,这尚未经过测试,只是我的一般想法,您可能想要排除更多或更少的内容。
答案4
你听说过巴库拉?
Bacula 是一套开源、企业级计算机程序,允许您(或系统管理员)管理跨不同类型计算机网络的计算机数据备份、恢复和验证。Bacula 相对易于使用且高效,同时提供许多高级存储管理功能,让您可以轻松查找和恢复丢失或损坏的文件。从技术角度来说,它是一款开源、企业级、基于网络的备份程序。