我们希望对Debian服务器上的所有内容进行备份,该服务器在世界另一端(由Linode托管)上远程运行,而无需关闭它。
该系统运行Shell,电子邮件,XMPP / prosody和Web,并带有几个简单的nginx设置。
为了安全起见,我们希望备份与这些东西相关的文件。例如,用户已将文件存储在其主目录中。
我们不需要为每个/ etc文件精确复制现有的安装程序;相反,我们甚至首先进行备份的原因是,我们可以将其全部移至新设置(较新版本的Debian仍在Linode上)。
我看到Linode提供了备份服务。但是从长远来看,我们还需要我们自己的备份,以防万一它们掉下来或发生其他奇怪的事情。
存在此问题的原因是,当我过去尝试进行备份时,一直犯以下两个错误之一:
- 我已经执行了“确定,我将对其进行
/
所有复制”,然后由于要复制的驱动器挂载在/ media / backup下而被卡在某个怪异的无限循环中,并且以递归方式复制自身[obv这个特定的问题在这里不适用,因为我们要通过rsync或类似的文件进行备份],或者它试图在/ proc或/ var或其他任何内容中复制一些“有效的”东西,例如试图跟上不断变化的日志,要么 - 我已经走了:“好吧,我将仅获取我们所需的最低限度……嗯,每个人的主目录和我们的Web服务器目录(都在之下
/var
),让我们/etc
在/ var /下获取所有旧邮件的副本。vmail”,然后我总是会搞砸文件权限或时间戳(以确保这次不将unix文件备份到FAT驱动器)或忘记了某些内容(“哦,射击,我在/ usr /中有一些自定义脚本我从未在其他地方存储过的本地/垃圾箱,我忘了拿那些,猜想它们现在已经消失了”)。
因此,obv直接复制整个驱动器会导致陷阱,有选择地复制目录会导致陷阱。我想知道如何正确做。
服务器故障问题完整备份系统需要什么?涵盖了哲学和良好实践,但我正在寻找以下这些更具体的细节:
- 我需要复制哪些目录,我要排除哪些目录(假设这是一个当前正在运行的系统,并且正在提供Wiki,XMPP聊天,电子邮件-在复制作业运行时会出现新消息)
- 我需要显示哪些文件属性,例如时间戳记,所有者和组,该怎么做?←我想我可以用类似以下内容来回答问题的一半……嗯……
rsync -HXaz
我认为这对我们来说是一个不错的选择?该-z
OBV没有真正涉及到这是“我该怎么维护”的问题
我看到的许多备份建议(例如使用dd
)似乎都以未安装驱动器且未使用该驱动器为前提。但我我不应该排除“活”的目录,如/ proc和一些在/ var子目录(但是,一些在/ var我知道我们肯定的东西做必要保持)和/安装?在这种情况下,我还需要考虑什么?然后我想我可以使用rsync并使用一堆--exclude
标志对其进行骚扰。
还是有更好的想法,尤其是对FOSS友好的想法?
cp -r -a
在复制文件时(根据目标文件系统支持的内容)将保留尽可能多的文件属性。该-a
标志指示cp
保留属性。对于通过网络或不支持所需属性的文件系统进行复制,tar -c
对我来说一直很有效,尽管我认为有些情况无法解决,尤其tar
是默认情况下,我相信它取决于用户名匹配两个系统。就是说,我复制了一个完整的(未安装的)Linux系统,使用时tar
没有任何明显的问题。