5

我有几十台 Linux 机器正在运行cron,我想将 crontab 放在某种版本控制系统中。对于源代码控制,我使用 Mercurial ( hg),所以这是理想的,但如果有其他更适合此任务的系统,我会考虑它。

我的情况特有的一个方面是所有 crontab 都属于一个普通用户(不是真人,而是占位符“服务”登录)。我希望修订历史记录包括每个更改的实际作者,而不是 cron 作业实际运行的特殊帐户。

4

3 回答 3

4

crontab -l 将您的 crontab 转储到标准输出,您可以将其重定向到文件。您可以有一份工作(自然是在 cron 中)将其重定向到一个文件,然后进行差异化,并根据需要推送到源代码控制。

于 2008-11-25T16:14:22.753 回答
2

http://joey.kitenet.net/code/etckeeper/

从那个网站:

etckeeper 是一组工具,可让 /etc 存储在 git、mercurial、darcs 或 bzr 存储库中。它与 apt(以及其他包管理器,包括 yum 和 pacman-g2)挂钩,以在包升级期间自动提交对 /etc 所做的更改。它跟踪修订控制系统通常不支持的文件元数据,但这对 /etc 很重要,例如/etc/shadow. 它非常模块化和可配置,如果您了解使用修订控制的基础知识,它也很容易使用。

于 2008-11-25T16:10:41.170 回答
0

如果 linux 系统遵循 LFS(linux 文件系统标准,IIRC),那么 /etc 应该只包含配置文件。通过将整个 /etc 导入 CVS,我有很好的经验。

唯一的问题是只有 root 可以提交更改,所以很难看出是谁破坏了某些东西。这可以通过为每个管理员分配一个 3 个字母的短名称并设置每个提交必须以该名称开头的规则来解决。

于 2008-11-25T16:40:59.643 回答