2008-11-25 225 views
4

我有幾十臺Linux機器運行cron,我想把crontabs放在某種版本控制系統中。對於源代碼控制,我使用Mercurial(hg),所以這很理想,但如果有其他系統更適合執行此任務,我會考慮它。Crontab版本控制?

特定於我的情況的一個方面是,所有crontabs屬於一個普通用戶(不是真人,而是佔位符「服務」登錄)。我希望修訂歷史包含每個更改的實際作者,而不是實際運行cron作業的特殊帳戶。

回答

2

crontab -l將您的crontab轉儲到標準輸出,您可以將其重定向到文件。你可以有一份工作(在cron中自然而然地)將它重定向到一個文件,然後根據需要將其推送到源代碼控制。

+0

是的,但沒有提交評論和作者歸屬的空間 – 2008-11-25 20:21:09

1

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

從上述站點:

etckeeper是一個工具集,讓/等被保存在一個Git,善變,的darcs,或BZR庫。它與apt(以及包括yum和pacman-g2在內的其他軟件包管理器)掛鉤,以便在軟件包升級期間自動提交對/ etc所做的更改。它跟蹤修改控制系統通常不支持的文件元數據,但這對於/ etc而言很重要,例如/etc/shadow的權限。它非常模塊化且可配置,如果您瞭解使用版本控制的基礎知識,使用起來也很簡單。

+0

這是好的,但並不是真正的滿足我的需求的完整解決方案。好奇心,我會說,但到目前爲止,我已經結束了自己的實現(沒有足夠複雜的值得發佈的代碼...基本上只是一個監控腳本,檢查`crontab -l`輸出對VCS回購。 – 2009-01-03 00:59:37

0

如果linux系統遵循LFS(linux文件系統標準,IIRC),那麼/ etc應該只包含配置文件。通過將整個/ etc導入到CVS中,我有很好的經驗。

唯一的問題是隻有root可以提交更改,所以看到誰破壞了一些東西有點難。這可以通過爲每個管理員分配一個3個字母的短名稱並設置每個提交必須以該名稱開頭的規則來解決。