我有几十台运行着的Linux机器,我想把crontab放到某种版本控制系统中。对于源代码控制,我使用Mercurial (),所以这是理想的选择,但如果有其他更适合此任务的系统,我也会考虑。
我的情况特定之处在于,所有的crontab都属于一个公共用户(不是真实人员,而是一个占位符“services”登录)。我希望版本历史记录包括每个更改的实际作者,而不是cron作业实际运行的特殊账户。
我的情况特定之处在于,所有的crontab都属于一个公共用户(不是真实人员,而是一个占位符“services”登录)。我希望版本历史记录包括每个更改的实际作者,而不是cron作业实际运行的特殊账户。
crontab -l 命令会将您的 crontab 转储到标准输出,您可以将其重定向到文件中。您可以在 cron 中设置一个任务,将此文件重定向到另一个文件中,然后进行差异比较,并根据需要将其推送到源代码控制。
http://joey.kitenet.net/code/etckeeper/ ?
从该网站上可以了解到:
etckeeper 是一组工具,可让 /etc 存储在 git、mercurial、darcs 或 bzr 存储库中。它与 apt(以及其他包管理器,包括 yum 和 pacman-g2)连接,以自动提交在软件包升级期间对 /etc 所做的更改。它跟踪文件元数据,这些版本控制系统通常不支持,但对于 /etc 很重要,例如 /etc/shadow 的权限。它非常模块化和可配置,如果您了解版本控制的基础知识,同时也很容易使用。
crontab -l
输出与VCS存储库的匹配情况)。 - John Zwinck如果Linux系统遵循LFS(Linux文件系统标准,如果我没记错的话),那么/etc目录应该只包含配置文件。我曾经将整个/etc目录导入到CVS中,效果还不错。
唯一的问题是只有root用户可以提交更改,所以很难确定是谁犯了错误。可以通过为每个管理员分配一个三个字母的简称,并设置规则,要求每次提交必须以此名称开头来解决这个问题。