(这最初是在 SuperUser 上提出的 --- 他们指出这里更合适。)
我在 Amazon EC2 实例中运行了一个崭新的 Debian 服务器。我花了一段时间设置它,现在它运行良好。但是,因为它是一个云服务器,如果我(或其他人)按错了按钮,那么它的虚拟硬盘就会弹出,我必须重新操作。所以,我想做备份。
但是我是按字节支付存储费用的,所以我想做一个小备份。
应该可以通过记录当前安装的软件包集(我可以通过 dpkg --get-selections 执行此操作)、debconf 数据库的状态(我可以通过 debconf-get-selections 执行此操作)来备份完整的 Debian 服务器,然后仅备份无法从软件包中轻松替换的文件 --- 即其他所有内容。然后恢复备份应该是重新安装软件包并将文件放在顶部的问题。
棘手的部分是确定哪些文件属于包,哪些文件不属于包。由于冗余文件太多,拥有要备份的静态子目录列表实际上不够好。我需要一种方法来自动确定某个文件是否需要备份。
这正是我不想自己做的事情,因为我会出错。有没有什么工具可以让我做到这一点?
(注意:我不是在寻找增量备份解决方案。我想拍摄完整的快照。)
答案1
答案2
我的印象是 David Given 提出的问题与 Kelbizzle 给出的答案不同。
我认为问题是(如果我错了请纠正我):如果我丢失当前配置,重新创建它需要的最少信息量是多少?这意味着不需要备份 /bin、/usr/bin、/sbin、/usr/sbin 等中的文件,因为这些是基本组件,已在安装的软件包列表中进行了描述,可以使用以下方法获取
sudo dpkg --get-selections
所以剩下的基本上就是配置文件了。看一下维基百科页面Linux 文件系统层次结构显示所有必要的配置都包含在目录中
/etc, /opt, /usr/local, /usr/sbin, /usr/share
如果你在主目录中安装了更多软件包,你应该注意这些;安装目录由你选择,所以你应该知道要备份什么。最后,现代 Linux 在你的主目录中隐藏了数百万个文件。因此你还需要备份
/home/your_name/.[a-Z]*
请记住,这是一棵深度不一的树,其中的子目录中有很多子目录。
总而言之,这比备份整个系统要少得多。这些信息量还可以进一步精简,但这种数量级的减少(即大约 10 倍)应该可以让它负担得起,至少我希望如此。
答案3
您应该使用 apt-clone 而不是 dpkg --get-selections,并且您可能还需要从 /var 备份文件。
这总是要视情况而定。