Set of scripts designed to audit a Linux or Unix server, sending the results as a YAML file for additional processing sysinfo-client (main program) reads your config file, then runs each applicable script in /modules and /modules. The output of all three (config and the modules directory) are a Perl hash, which is converted to a YAML representation. The YAML file is then transmitted to another server using processes stored in /scripts and/or /scripts /* are designed to be updated but /* is NOT modified by updates (unless requested). Installation Instructions # target directory normally either /opt/sysinfo_client (Linux) or /usr/local/opt/sysinfo_client (BSD) svn co http://svn.dailydata.net/svn/camp_sysinfo_client_3 /your/target/directory/camp/sysinfo_client Now, either manually configure (see /install/sysinfo-client.conf.template.yaml) or run /installer/setup. NOTE: setup is still beta, so use with care. However, it is designed to be non-destructive, so running it more than once is fine. You can also run the individual scripts in the install directory (see setup for correct order) Resulting structure (default Linux install) /opt/camp/sysinfo_client - Primary script (sysinfo_client) and libraries /opt/camp/sysinfo_client/modules - scripts to be run to gather data /opt/camp/sysinfo_client/scripts - transports to send results to another machine /etc/camp/sysinfo_client - Configuration file(s) /etc/camp/sysinfo_client/modules - optional location for local scripts to be run to gather data /etc/camp/sysinfo_client/scripts - optional location for local scripts to transport results to master machine /etc/cron.daily/sysinfo_client - soft link to executable /etc/server_info - optional file to identify location, owner, etc... (see installer/server_info.sample) FreeBSD install moves /opt to /usr/local/opt, and /etc/ to /usr/local/etc with cron link going into /etc/periodic/daily opnSense is basic FreeBSD except cron done via config.d by placing an action file in /usr/local/opnsense/service/conf/actions.d Operation: When sysinfo_client is called load and verify the config file, creating a structure in memory (hash) run every script with the executable flag set in the modules/ directory run every script with the executable flag set in /etc/..../modules directory attempt each transport defined in config, from lowest priority to highest, until one succeeds Modules Each module file should have one parameter with the location of library.pm (directory only, do not include library.pm) Modules must fail gracefully, identifying if they are not applicable to an existing machine (ie if a FreeBSD machine, don't try to run Linux specific commands) Modules return 0 or more tab delimited lines containing category, sub-category, key, value