2008-11-25 7 views
4

У меня есть несколько десятков машин Linux, работающих под управлением cron, и я хотел бы поставить crontab в какую-то систему контроля версий. Для управления версиями я использую 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 представляет собой набор инструментов, чтобы/и т.д. хранить в мерзавца, ртутный, Darcs или BZR хранилище. Он подключается к apt (и другим менеджерам пакетов, включая yum и pacman-g2), чтобы автоматически вносить изменения, внесенные в/etc во время обновления пакета. Он отслеживает метаданные файлов, которые обычно не поддерживают системы управления revison, но это важно для/etc, например, разрешения /etc/shadow. Он довольно модульный и настраиваемый, а также прост в использовании, если вы понимаете основы работы с контролем версий.

+0

Это все в порядке, но на самом деле не полное решение для моих нужд. Любопытство, я бы сказал, но до сих пор я сам реализовал что-то (ничего сложного, чтобы стоить писать код для ... в основном просто скрипта мониторинга, который проверяет вывод «crontab -l» против репо VCS. – 2009-01-03 00:59:37

0

Если система Linux следует за LFS (стандарт файловой системы Linux, IIRC), то/etc должен содержать только файлы конфигурации. У меня был довольно хороший опыт, импортировав все/etc в CVS.

Единственная проблема заключается в том, что только корень может фиксировать изменения, поэтому было немного сложно понять, кто что-то сломал. Это можно решить, назначив каждому администратору 3-х буквенное короткое имя и установив правило, согласно которому каждая фиксация должна начинаться с этого имени.