Pergunta

Eu tenho máquinas de algumas dezenas de Linux rodando cron e eu gostaria de colocar os crontabs em algum tipo de sistema de controle de revisão. Para controle de origem Eu uso Mercurial (hg), de modo que seria ideal, mas se há algum outro sistema que é mais adequado para esta tarefa eu considerá-lo.

Um aspecto que é específico para a minha situação é que todos os crontabs pertence a um usuário comum (não é uma pessoa real, mas um espaço reservado "serviços" login). Eu gostaria o histórico de revisão para incluir o autor real de cada mudança, em vez da conta especial, onde as tarefas agendadas realmente executado.

Foi útil?

Solução

crontab -l despeja seu crontab para a saída padrão, que você pode redirecionar para um arquivo. Você poderia ter um emprego (em cron, naturalmente) para redirecionar a um arquivo que é então diffed, e empurrou para o controle de origem, se necessário.

Outras dicas

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

A partir desse site:

etckeeper é uma coleção de ferramentas para deixar / etc ser armazenado em um git, mercurial, darcs, ou bzr repositório. Ele conecta em (gerenciadores de pacotes e outros, incluindo yum e pacman-g2) aptos a cometer automaticamente as alterações feitas ao arquivo / etc durante as atualizações de pacotes. Ele rastreia metadados do arquivo que sistemas de controle Revison normalmente não apoiar, mas que é importante para o / etc, como as permissões de /etc/shadow. É completamente modular e configurável, além de ser simples de usar se você compreender os conceitos básicos de trabalho com controle de revisão.

Se o sistema linux segue as LFS (Linux Standard sistema de arquivos, IIRC), então / etc deve conter apenas arquivos de configuração. Eu tive muito boa experiência com a importação de todo o / etc no CVS.

O único problema é que somente o root pode confirmar as alterações, por isso foi um pouco difícil de ver que quebrou alguma coisa. Isso pode ser resolvido através da atribuição de cada administrador um nome curto de 3 letras e configurar a regra de que cada commit deve começar com este nome.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top