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

Pao*_*olo 11 linux backup rsnapshot

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

我想做一个完整的系统备份,不包括对恢复重新拥有工作系统无用的文件和目录。我已经排除了:

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

# Application:
exclude /*.pyc
exclude /*.pyo
Run Code Online (Sandbox Code Playgroud)

我想知道我可以将哪些其他条目添加到排除列表中而不会影响恢复的系统。谈到“通用”Linux 系统,您能否建议进一步的 glob 扩展、临时目录、缓存等。我可以安全地排除?

use*_*ser 12

首先,您应该阅读一些 rsync 的包含/排除语法。我觉得你想做的事用**globs 比用globs做得更好*。(**膨胀到任意数量的条目,而*膨胀仅单个条目可能匹配多个目录条目。细节在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 / ./
Run Code Online (Sandbox Code Playgroud)

和其他很少。是的,这意味着我可能会复制比严格需要的更多的内容,但它可以确保复制任何不打算作为临时文件的内容。由于 rsnapshot 使用 rsync 的硬链接到重复数据删除行为,唯一真正的成本是在第一次运行期间;之后,假设您有一个合理大小(与您的总数据集大小相比)的备份目标位置,那么无论是时间还是磁盘空间都只需要很少的额外空间。我排除了 /backup 的内容,因为这是我挂载备份目标文件系统的地方;不排除它会导致将备份复制到自己的情况。但是,为了简单起见,如果我需要恢复到裸机,我想保留挂载点!

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

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

  • @spaceknarf 当您恢复到裸机时会中断安装,因为此时安装点不存在。 (4认同)