Μέχρι να φτάσω στο σημείο να χρησιμοποιώ κάποιο configuration management system χρησιμοποιώ το cvi, ένα πολύ απλό vi wrapper script για να κάνω edit τα αρχεία στα οποία θέλω να κρατάω revision history (στο σύστημα πρέπει να υπάρχει εγκατεστημένο το GNU RCS).
#!/bin/sh # # cvs-vi -- script by stsimb # use this to keep certain files under revision control # stores revision info in $filename,v in same directory if [ -z "$1" ] ; then echo keep filename under version control, storing info at filename,v echo usage = $0 filename exit 1 fi if [ -L $1 ] ; then echo please dont use $0 on symbolic links exit 1 fi co -l $1 vi $1 ci -u $1
Μετά το πρώτο cvi, υπάρχουν δύο αρχεία στο filesystem, πχ.$ ls -l mx-in.mc*
-r--r--r-- 1 root root 4426 Oct 19 09:20 mx-in.mc -r--r--r-- 1 root root 10615 Oct 19 09:20 mx-in.mc,v
Οταν θέλω να δω τις αλλαγές που έχουν γίνει, χρησιμοποιώ το rlog
$ rlog mx-in.mc
RCS file: mx-in.mc,v Working file: mx-in.mc head: 1.14 branch: locks: strict access list: symbolic names: keyword substitution: kv total revisions: 14; selected revisions: 14 description: this file is used to generate sendmail.cf ---------------------------- revision 1.14 date: 2007/10/19 09:20:47; author: root; state: Exp; lines: +3 -3 set remote STARTTLS timeout to 2 mins ---------------------------- revision 1.13 date: 2007/05/23 07:16:54; author: root; state: Exp; lines: +6 -10 increase load avg for delay/queue/refuse [...] ---------------------------- revision 1.3 date: 2007/03/15 07:17:10; author: root; state: Exp; lines: +7 -4 add features require_rdns and badmx ---------------------------- revision 1.2 date: 2007/01/22 14:50:17; author: root; state: Exp; lines: +12 -12 comment out local rulesets ---------------------------- revision 1.1 date: 2007/01/22 14:49:56; author: root; state: Exp; Initial revision =============================================================================
Οταν θέλω να δω τι ακριβώς άλλαξε πχ. από το revision 1.2 στο 1.3, χρησιμοποιώ το rcsdiff
$ rcsdiff -u -r1.2 -r1.3 mx-in.mc
=================================================================== RCS file: mx-in.mc,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- mx-in.mc 2007/01/22 14:50:17 1.2 +++ mx-in.mc 2007/03/15 07:17:10 1.3 @@ -11,14 +11,14 @@ # the sendmail distribution. # # This file is under revision control, use cvi to edit it -# $Header: /local/mail_src/sendmail-8.14.2/cf/cf/mx-in.mc,v 1.2 2007/01/22 14:50:17 root Exp $ +# $Header: /local/mail_src/sendmail-8.14.2/cf/cf/mx-in.mc,v 1.3 2007/03/15 07:17:10 root Exp $ # divert(0)dnl -VERSIONID(`$Id: mx-in.mc,v 1.2 2007/01/22 14:50:17 root Exp $')dnl +VERSIONID(`$Id: mx-in.mc,v 1.3 2007/03/15 07:17:10 root Exp $')dnl OSTYPE(linux)dnl DOMAIN(generic)dnl define(`confTO_IDENT',`0s')dnl @@ -29,6 +29,8 @@ FEATURE(`conncontrol',`nodelay',`terminate')dnl define(`confCONNECTION_RATE_THROTTLE', `20')dnl The maximum number of connections permitted per second per daemon define(`confCONNECTION_RATE_WINDOW_SIZE', `60s')dnl +FEATURE(`require_rdns')dnl +FEATURE(`badmx')dnl dnl ########## dnl ########## dnl ##########
Χα already implemented στο VAX/VMS OpenVMS εδω και αιωνες :P
Είδες τι κακό που είναι να μην έχουμε τα παλιά εργαλεία στα καινούρια συστήματα.. :)
Για δες και αυτό:
http://www.nightcoder.com/code/xed/
Είναι ακριβώς αυτό που έψαχνα, ναι.. :)
(και το ανακάλυψα προχθές διαβάζοντας το Time Management for System Administrators του TL)