Domanda

Ho alcune decine di macchine Linux che eseguono cron e mi piacerebbe inserire i crontab in una sorta di sistema di controllo delle revisioni. Per il controllo del codice sorgente uso Mercurial ( hg ), quindi sarebbe l'ideale, ma se ci fosse un altro sistema più adatto a questo compito lo prenderei in considerazione.

Un aspetto specifico della mia situazione è che tutti i crontab appartengono a un utente comune (non una persona reale, ma un segnaposto "servizi" e login). Vorrei che la cronologia delle revisioni includesse l'autore effettivo di ogni modifica, anziché l'account speciale in cui vengono effettivamente eseguiti i processi cron.

È stato utile?

Soluzione

crontab -l esegue il dump del crontab sullo standard output, che puoi reindirizzare a un file. Potresti avere un lavoro (in cron, naturalmente) per reindirizzare questo su un file che viene quindi diffuso e trasferito al controllo del codice sorgente se necessario.

Altri suggerimenti

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

Da quel sito:

  

etckeeper è una raccolta di strumenti per lasciare / etc in un repository git, mercurial, darcs o bzr. Si collega a apt (e ad altri gestori di pacchetti tra cui yum e pacman-g2) per eseguire automaticamente il commit delle modifiche apportate a / etc durante gli aggiornamenti del pacchetto. Tiene traccia dei metadati dei file che normalmente i sistemi di controllo revison non supportano, ma questo è importante per / etc, come le autorizzazioni di / etc / shadow . È abbastanza modulare e configurabile, ma allo stesso tempo semplice da usare se si comprendono le basi per lavorare con il controllo di revisione.

Se il sistema linux segue LFS (linux filesystem standard, IIRC), allora / etc dovrebbe contenere solo file di configurazione. Ho avuto una buona esperienza importando tutto / etc in CVS.

L'unico problema è che solo root può eseguire il commit delle modifiche, quindi è stato un po 'difficile vedere chi ha rotto qualcosa. Ciò può essere risolto assegnando ad ogni amministratore un nome breve di 3 lettere e impostando la regola che ogni commit deve iniziare con questo nome.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top