我可以安全排除进行备份的条目


10

我正在计划基于rsnapshot的备份策略。

我想进行完整的系统备份,但不包括那些对于恢复重新具有正常工作的系统没有用的文件和目录。我已经排除在外:

# System:
exclude /dev/*
exclude /proc/*
exclude /sys/*
exclude /tmp/*
exclude /run/*
exclude /mnt/*
exclude /media/*
exclude /lost+found

# Application:
exclude /*.pyc
exclude /*.pyo

我不知道可以在不损害已还原系统的情况下将哪些其他条目添加到排除列表。谈到“通用” Linux系统,您能否建议进一步的glob扩展,临时目录,高速缓存等。我可以安全地排除在外吗?

Answers:


11

首先,您应该对rsync的include / exclude语法有所了解。我觉得使用**glob比*glob 更好地完成您想做的事情。(**膨胀到任意数量的条目,而*膨胀仅单个条目可能匹配多个目录条目。细节在man rsync包含/排除模式规则。)

就是说,如果您希望能够以最小的麻烦从备份中将系统还原到已知的工作状态,则应谨慎选择排除文件或目录。我自己使用rsnapshot,实际上采取了相反的方法:包括所有内容,除了一些精心选择的目录。

所以我的rsnapshot.conf实际上声明了(带有使rsnapshot的配置文件解析器满意的选项卡):

interval backup NNN # pick your poison
one_fs 0
exclude /backup/**
exclude /dev/**
exclude /proc/**
exclude /run/**
exclude /sys/**
exclude /tmp/**
backup / ./

很少。是的,这意味着我可能会复制超出严格要求的内容,但是它可以确保复制所有非预期的内容。由于rsnapshot使用rsync的硬链接到重复数据删除行为,因此,唯一的实际成本是在第一次运行期间。之后,假设您拥有一个合理大小(与总数据集大小相比)的备份目标位置,那么在时间或磁盘空间上的花费就很少。我排除了/ backup的内容,因为这是我装载备份目标文件系统的地方。不排除它会导致将备份复制到自身中的情况。但是,为了简化起见,如果我需要恢复到裸机上,我想保留安装点!

就我而言,我也无法合理使用one_fs 1; 我在当前约40个文件系统上运行ZFS。明确列出所有这些内容将是维护的噩梦,并使使用ZFS文件系统的工作比需要的要复杂得多。

无论如何,除了上述内容之外,您几乎要排除的所有内容都将取决于分布,因此,几乎不可能给出一个通用的答案。也就是说,您可能会在/ var下找到一些候选对象。


1
exclude /somepath/*在这种情况下是完全可以的;/somepath/正如预期的那样,它排除了中的所有内容。您不需要,**因为/somepath/已经排除了其中的所有内容,因此无需深入了解。
Martin von Wittich 2014年

或者只是exclude /somepath完全使用并忽略这些目录-而不仅仅是它们的内容。
Frank Kusters,2015年

4
@spaceknarf还原到裸机上时会中断安装,因为安装点不存在。
CVn 2015年

4

您尝试执行的大多数操作都可以简单地通过使用one_fs设置来完成。设定您想要在你的备份,包括文件系统,然后使用该设置忽略其它(procsysdev等)。我/lost+found之所以这样说是因为除非您已经备份了损坏的文件系统,否则该目录应该始终为空,在这种情况下,您可能希望备份任何已fsck恢复的文件。另外,.pyc并且.pyo实际上不应该放在根目录中,因此我也将删除这些行。 /tmp/var/tmp是大约一个“通用”系统,该系统包含可从备份被可靠地排除的数据上仅存路径。所以也许尝试类似的东西:

one_fs 1

exclude /tmp/
exclude /var/tmp/

我不是真的意思/*.pyc/*.pyc而是系统范围内的*.pyc*.pyo,我已将其修复。我不确定是否one_fs将设置为1排除我想要的任何东西。
Paolo 2013年

1
如果系统软件包使用此类文件怎么办?
2013年

没错,但是我几乎可以确定,每个文件.py迟早都会自动重新编译。
Paolo 2013年

3
也许可以,但是在我的系统上,此类文件是由供应商软件包安装的。这意味着,如果从备份中还原系统,则程序包管理器认为存在的文件将丢失。您询问了“通用” Linux系统的解决方案,但我认为始终认为此类文件可以丢失而不引起问题是不安全的。
2013年

值得一提的是,在Q.中我忘了说的是,绑定挂载也应该被排除在外,以避免数据重复。
Paolo 2013年

1

我发现最好有一个软件包列表,/ etc,/ home的内容以及/ var和其他位置的任何用户/系统数据。重新安装软件包并复制回工作配置通常更快。


为什么安装软件包(包括写入所有系统文件以及处理配置和元数据)比单纯复制文件要快?
2013年

我的经验是,当需要真正的备份时,您还会发现没有正确存储和记录有关系统的所有信息。将重点放在娱乐而非恢复上可以使它变得更容易,更快,更经常地完成。显然是YMMV。
肖恩·佩里
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.