Project Idea no. 5629
Another idea for a project I may or may never get around to completing (or in this case, starting): * list of configuration files/binaries to ‘check’ * in the case of text-based configuration files, read the file into the database * nightly, check the files to see if they’ve been modified (MD5sum) * if the configuration file has been modified, diff it and the file already in the database * put the output of diff into a database
This would allow an admin quick and easy access to view any changes made to the configuration structure of their machine.
Advantages over using CVS for monitoring
- automated, no chance of ‘forgetting’ to check a change into CVS
- easy to view changes
- easier configuration, easier to roll out onto multiple servers
- “server roles” automatically selecting default packages - eg “Apache web server” would automatically add /etc/apache/httpd.conf, /usr/sbin/httpd, etc.
- all done via a central database, eg _select samba_config from dbmachinename;
I’ve been doing some more thinking about this. Here’s one proposed database structure and what each column should store: > _dbmachinename > - file_name (name of the config file we’re backing up) > - config_orig (config file as it was originally) > - date_orig (date the config file was read in) > - config_cur (config file as it is today)
_db_machinenamediffs - file_id (id of the config file we’re dealing with) - diff_date (date we took the diff) - diff_text (text of the actual diff)