我有几十台运行cron
的Linux机器,我想将crontabs放在某种版本控制系统中。对于源代码控制,我使用Mercurial(hg
),因此这是理想的,但是如果有其他系统更适合这项任务,我会考虑它。
特定于我的情况的一个方面是所有crontabs属于普通用户(不是真人,而是占位符“服务”登录)。我希望修订历史记录包含每个更改的实际作者,而不是cron作业实际运行的特殊帐户。
答案 0 :(得分:3)
crontab -l将您的crontab转储到标准输出,您可以将其重定向到文件。你可以有一份工作(自然地用cron)将它重定向到一个文件,然后根据需要将其推送到源代码控制。
答案 1 :(得分:1)
http://joey.kitenet.net/code/etckeeper/?
从该网站:
etckeeper是一组工具,可以将/ etc存储在git,mercurial,darcs或bzr存储库中。它挂钩到apt(以及其他包管理器,包括yum和pacman-g2),以便在包升级期间自动提交对/ etc所做的更改。它跟踪修改控制系统通常不支持的文件元数据,但这对于/ etc很重要,例如
/etc/shadow
的权限。它非常模块化和可配置,如果您了解使用版本控制的基础知识,也很容易使用。
答案 2 :(得分:0)
如果linux系统遵循LFS(linux文件系统标准,IIRC),那么/ etc应该只包含配置文件。通过将整个/ etc导入CVS,我获得了很好的经验。
唯一的问题是只有root可以提交更改,所以有点难以看出谁破坏了某些东西。这可以通过为每个管理员分配一个3个字母的短名称并设置每个提交必须以此名称开头的规则来解决。