我目前正在使用运行 Ubuntu Linux 的虚拟服务器。托管它的公司不做任何类型的备份,但他们为我提供了通过 FTP 进行备份的机会。因此,我可以访问与我的主要服务器存储大小相同的 FTP 共享。没有比这是您的 FTP 帐户数据,玩得开心!但我想我应该写一个小脚本并将其作为 cron 作业运行。他们宣传他们的备份解决方案,好像它是世界上最好、最简单的东西,但现在我看到许多悬而未决的问题。
因此我不是问如何编写 shell 脚本,而是问它应该做什么。
首先,我必须决定是否只想备份一些数据文件夹(例如 htdocs 和最近的 DB 转储)或者如果我想镜像整个服务器。我更愿意选择后者,因为我不仅担心数据丢失,而且还要经历从头开始配置服务器的痛苦,这通常会让我忙上几天。
接下来,我想知道备份是否会遇到任何问题当前访问的文件通过某些进程,甚至可能是写入。我的备份中最终会损坏文件吗?备份会停止吗?或者服务器的正常运行会被中断吗?
如果我的备份空间是主服务器的两倍,那么我会上传备份 n,成功之后,删除备份 n-1。但我的空间只相当于我服务器的硬盘空间,所以我无法同时保留备份 n 和 n-1。但如果我反过来做(即删除备份 n-1,然后开始上传备份 n),我就会经历没有任何备份的情况,我想避免这种情况。
如果我有该服务器的物理访问权限,或者至少可以访问我的 VServer 的虚拟硬盘映像文件,我就会备份该图像并将其整体恢复。但遗憾的是,我没有这个权限。
最后,我还想知道我该如何恢复这些数据以防主存储消失。在 Linux 上,是否可以让系统在运行时用备份数据覆盖自身?即使可以告诉系统通过 ftp 下载所有内容,将其存储在文件系统根目录 / 并覆盖那里的所有内容,我仍然必须删除现在存在但在备份中不存在的所有文件。
非常感谢任何帮助和想法!
答案1
尝试 ftplicity - 在 HowToForge 上可以找到一个不错的操作指南:http://www.howtoforge.com/ftp-backups-with-duplicity-ftplicity-debian-etch
回答您的其他问题:
只备份服务器配置 (/etc)、用户数据 (/home、/usr/local 等) 而不是整个服务器是有意义的。使用 dpkg 可以轻松恢复 ubuntu,请参阅 ubuntugeek.com/clone-your-ubuntu-installation.html 上的“dpkg get-selections”
是的,正在写入的文件会给你的备份带来问题(MySQL 数据库、邮件假脱机文件等),因此最好的做法是查看所有需要备份的服务并查看其文档
无需备份整个服务器,借助 tar,您应该能够在 ftp 位置存储多个备份集
恢复应该很简单:您将获得一个可以运行的虚拟服务器,对吗?使用 dpkg set-selections 升级软件包,恢复 /etc,重新启动(或重新加载服务)并将您的用户日期复制回去
答案2
说实话,我不会这么做。FTP 不安全且未加密 - 任何人都可以嗅探您的流量并窃取您的资料。
设置一个真正的备份系统(对于这种设置,通过 SSH 进行 rdiff-backup 是个不错的选择),并远离 ISP 的 dain-bramaged BS。备份太重要了,磁盘太便宜了,不能冒愚蠢的风险。