首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过SSH备份远程Ubuntu?

问如何通过SSH备份远程Ubuntu?
EN

Ask Ubuntu用户
提问于 2012-07-20 20:57:50
回答 1查看 10.1K关注 0票数 4

所以,就像我说的,我有一个VPS,Raspberry Pi和一个计划,但我需要一些建议,所以这里。

如何通过SSH?

备份远程Ubuntu

当然,我希望这个备份包含所有的内容,这样我就可以快速地恢复整个服务器,如果事情变坏了,所有这些都配置得很好。

您将如何运行这种备份?我想,我需要编写一些bash脚本到SSH中,将所有相关文件压缩到一个tar.gz或类似的文件中,然后下载这些图像。

你对此有何看法?您将使用哪些软件包等,以及如何配置它?VPS有一个灯堆栈,那么您打算备份哪些文件?它还安装了许多其他较小的程序,如GIT和ZendTools。

EN

回答 1

Ask Ubuntu用户

回答已采纳

发布于 2012-07-20 21:35:43

SSH公钥认证

您要做的第一件事是从ssh公钥身份验证开始。这将使您的脚本在没有密码的情况下使用SSH。

服务器只需要安装SSH,并为将从RasPi运行备份脚本的用户设置公钥身份验证。

下面是一个用于公钥认证的很好的教程:https://hkn.eecs.berkeley.edu/~dhsu/ssh_公共的_钥匙_howto.html

选项1: SSH和Tar

您可以从服务器压缩tar.gz并通过ssh直接传输它,如下所示:

代码语言:javascript
复制
ssh root@remoteserver.example.com "tar -czvf - / 2> /var/log/sshbackup" > vpsbackup.tar.gz

这将使VPS tar和gzip所有文件都在/上,并通过SSH将其传输到vpsbackup.tar.gz中,存储在RasPi上。最近备份的日志将保存在VPS上的/var/ log /sshbackup上。

选项2: Rsync

在SSH上发送整个.tar.gz是低效的.不改变的文件仍将被传输。更好的解决方案是使用rsync,但这会使保留权限的.tar.gz变得困难。如果RasPi上有足够的存储空间,则只需将备份文件存储为普通的ol‘文件即可。然后,如果希望保留多个过去的备份,可以使用一个脚本tar.gz。

服务器需要安装rsync。这将在SSH上运行,因此您仍然使用公钥身份验证,并保留加密。您将需要以root用户身份运行此命令,并启用公共密钥身份验证和根用户SSH登录以保留权限。您的目标(或至少一个临时目标)应该是一个Linux文件系统。如果将这些备份存储在FAT或NTFS分区上(例如,在大多数外部硬盘驱动器上),则可以为临时存储创建一个回送文件系统(请参阅http://www.walkernews.net/2007/07/01/create-linux-loopback-file-system-on-disk-file/)。tar.gz文件可以存储在任何分区上,因为它保留了自己的权限。

一个示例rsync命令:

代码语言:javascript
复制
rsync -a --delete --exclude=/dev --exclude=/sys --exclude=/proc --exclude=/tmp remoteserver.example.com:/ /path/to/backup/destination/

使用时要小心--删除,特别是作为根!它将删除目标目录中备份源上不存在的任何文件。当同步到仅用于该VPS的专用备份目录时,应只使用--delete。您还应该确保脚本不可能同步到错误的目的地(例如,如果/path/ to /备份/目标由shell变量确定)

rsync只传输源和目标之间不同的文件。如果您有大型文件,它还将只传输已更改的文件的部分(要使其工作,必须添加-c标志)。这意味着您正在使用最小的带宽,但它将使用更多的CPU和减慢重新同步准备时间,因为双方需要首先检查和文件,以确定哪些块要传输。如果您确实使用了-c标志,并且您有大型文件(例如数据库文件)和/或一个片状连接,请考虑添加--部分-追加,这使您能够在连接中断后恢复传输。

票数 5
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/166142

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档