Many Unix SysAdmins have written their own systems to gather and maintain the configuration and other data from the systems they administer. My system is different to all of the others that I've seen, in that instead of holding the data per host it is held per data-type. That is, instead of having a file or directory containing the data for each host, it has a directory for the passwd file, a directory for the hosts file, a directory for the memory size and so on. In all cases, the file containing the data is named after the host. This means that by 'cd'ing into the 'passwd' directory you can 'grep' for a username and 'grep' itself tells you which hosts that user has an account on.

Any data that can be obtained from or about a host using a command or a script can be saved. Any data that can similarly be set or restored can be pushed back to the host. (All as restricted by the permissions and inter-host access policies of course).

There are two versions of this system. The first, known as 'manage', is one large script which uses plug-in functions to perform some of the tasks. The newer version is known as 'data', and is a smaller script that relies on local '..x' files in each data directory to determine what to do and how to do it.

Working this way places restrictions on the names of files in the data directories. One rule is that any filename that is a valid hostname must contain data relevant to that host. The fact that a hostname isn't in use does not mean that that valid hostname can be used for anything else. In some circumstance the system will try to use it
as a hostname. Another rule is that filenames consisting entirely of digits are reserved for 'set' information, indicating which hosts have identical data files. Because of this there are several files beginning with '..' in the data directories.

There is also a CGI script that makes the data available via a web browser. A data table within the script has to be manually edited to control which data is available that way. The first screen offered to the user is an array of checkboxes allowing the user to select which of those allowed they wish to see.

The CGI script also allows the maintenance of 'manual' data sets where the data is manually entered, possibly by an end user. Such data includes location, Serial Number, usage and the like.

'manage', the CGI script, and some more information is available here. 'data' will be available shortly (I hope).