As a systems integrator, designer & part-time system administrator, some of my
capital lies in configuration files I have created and tweaked to get one or
the other package of software up and running. Be it OpenLDAP’s
slapd.conf
for the LDAP directory servers, Exim’s exim.cf
or whatever
I named it, or some magic with Apache httpd.conf
, these files and any
scripts or programs that I developed to tweak something on the fly, are very
important to me, as your configuration files are important to you as a system
administrator. Quite apart from the fact that all this stuff is of course
regularly backed up to off-site tape, what I often need when I’m on the road
or sitting in a hotel room, is to look at something I’ve previously done. No
problem, you say: take a copy of the files along with you! Sure, but how often
& where do I put them safely? When have they changed? How often should I
rsync or scp them? This afternoon I put together a pearl of a wee
program (in Perl) which is scheduled to run nightly. Given a list of files to
check (and commands to run!), it slurps up the files’ content (or the command
output), checks an MD5 hash to see if it has been modified, and if so, sends
them off via XML-RPC to a service running on a Lotus Domino server, which
drops some meta data about the file or command together with their content as
attachment into a Lotus Notes database. Here they are neatly cataloged by
source host, base-name and modification time. The service on Domino is a
custom made C program which uses the Lotus Notes C API to create a new
document in an NSF(Notes Storage Facility) database. And then? Well, I simply
take a replica of the database along with me! :-)