所以,就像我说的,我有一个VPS,Raspberry Pi和一个计划,但我需要一些建议,所以这里。
备份远程Ubuntu
当然,我希望这个备份包含所有的内容,这样我就可以快速地恢复整个服务器,如果事情变坏了,所有这些都配置得很好。
您将如何运行这种备份?我想,我需要编写一些bash脚本到SSH中,将所有相关文件压缩到一个tar.gz或类似的文件中,然后下载这些图像。
你对此有何看法?您将使用哪些软件包等,以及如何配置它?VPS有一个灯堆栈,那么您打算备份哪些文件?它还安装了许多其他较小的程序,如GIT和ZendTools。
发布于 2012-07-20 21:35:43
您要做的第一件事是从ssh公钥身份验证开始。这将使您的脚本在没有密码的情况下使用SSH。
服务器只需要安装SSH,并为将从RasPi运行备份脚本的用户设置公钥身份验证。
下面是一个用于公钥认证的很好的教程:https://hkn.eecs.berkeley.edu/~dhsu/ssh_公共的_钥匙_howto.html
您可以从服务器压缩tar.gz并通过ssh直接传输它,如下所示:
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上。
在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命令:
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标志,并且您有大型文件(例如数据库文件)和/或一个片状连接,请考虑添加--部分-追加,这使您能够在连接中断后恢复传输。
https://askubuntu.com/questions/166142
复制相似问题