Overview
Revision Control is often used to track changes to source code and other documents, so why not your Operating System?.
After 1 year of receiving change notifications for my database instances and knowing exactly what change happened and when (aka dbRecorder), I decided the same should be true about the underlying Operating System.
In a busy environment changes happen all the time, unfortunately the human element is often the weak link resulting in minor changes that either fail to make it onto the change register or were only supposed to be temporary.
Add to that the uncertainty of what changes were made and when, it became clear that the automated change capture of dbRecorder would work perfectly at the Operating System, after all a change to the OS will often have a knock on effect to anything running on top of the OS like my Database for instance.
Change Control
Using revision control you are able to keep a record of any changes made to the configuration / structure of your database in the same way that developers keep track of their source code.
Notification
Everytime you run osRecorder the Operating System configuration is compared to the repository version. Along with storing these change in revision control you can also configure notification via e-mail (more methods to come). Great for knowing when something changes!.
This software is Alpha quality!!!, it works for me and I will update as I find bugs but please accept that it may not work for you without a few tweaks...you have the code so please do contribute.
Notifications are cool but where are all those changes kept?
osRecorder currently stores all changes to your database structure using a Subversion repository.
There are many tools out there for working with Subversion but if you are new to SVN you should check out the following:
Requirements
Supported Operating Systems
Work is under way to add support for FreeBSD and Windows prior to the initial release. Watch this space for more OS support in future.
Configuration File Format
I decided to use YAML as the format for the osRecorder configuration file as it is much easier on the eye than XML. Using YAML you can define multiple OS hosts using simple indentation and the - character as you will see next.
The osRecorder config file is divided into several sections allowing you to tailor individual aspects of the application as follows.
Subversion Section |
||
Key |
Value |
Description |
Subversion: |
None |
Start of Subversion config |
- Name: |
String |
Subversion Repository Name (brief description) |
URL: |
String |
Subversion Repository URL |
Username: |
String |
Username with permission to update SVN Repository (NOT IN USE) |
Password: |
String |
Password used to access SVN Repository (NOT IN USE) |
Notification Section |
||
Key |
Value |
Description |
Notification: |
None |
Start of Notification config |
- Method: |
String |
Notification method |
Server: |
String |
Notification server (smtp server) |
Port: |
String |
Notification port (default 25) |
From: |
String |
E-mail from address |
To: |
Array |
Notification recipients e.g. [test1@osrecorder.org,test2@osrecorder.org] |
FreeBSD Section |
||
Key |
Value |
Description |
FreeBSD: |
None |
Start of FreeBSD config |
- Name: |
String |
Defaults to Hostname if not specified. |
Hostname: |
String |
FreeBSD Hostname/IP |
Repository: |
String |
Subversion Repository Name (brief description) |
SecureShell: |
None |
Connection details required to access configuration (not required for localhost). |
Username: |
String |
SSH Username |
Password: |
String |
SSH Password |
Example Config File
Subversion: - Name: MySVNRepository URL: file:///home/osRecorder/svn Notification: - Method: smtp Hostname: localhost Port: 25 From: osRecorder@osRecorder.org FreeBSD - Hostname: localhost Repository: MySVNRepository
Download
Alpha Release
Coming Soon.
Limitations
Support for local file:/// based Subversion repository only in this release.
- Support for e-mail change notification only.
Help Improve osRecorder
The best way to improve osRecorder is to use it and let me know what works, what doesn't and what's missing. You can do that using the Issue Tracker - it's easy.
Source Code
References
SVN Browsers
Standalone Clients







