diff options
Diffstat (limited to 'health-model.lua')
-rw-r--r-- | health-model.lua | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/health-model.lua b/health-model.lua new file mode 100644 index 0000000..e0e2cf3 --- /dev/null +++ b/health-model.lua @@ -0,0 +1,62 @@ +-- acf model for displaying logfiles recusivly +module (..., package.seeall) + +require("fs") +require("date") + +-- ############################################################### +-- Private functions +local function querycmd ( cmdline ) + local cmd = io.popen( cmdline ) + local cmd_result = cmd:read("*a") or "unknown" + cmd:close() + return cmd_result +end + +local function diskfree ( media ) + if not (media) then media = "" end + local cmd = io.popen( "df -h " .. media ) + local cmd_result = cmd:read("*a") or "unknown" + cmd:close() + return cmd_result +end + +-- ############################################################### +-- Public functions +get_system = function (self) + local system = {} + system.uptime = querycmd("/usr/bin/uptime") + system.date = querycmd("/bin/date") + system.timezone = date.what_tz() + system.uname = querycmd("/bin/uname -a") + system.memory = querycmd("/usr/bin/free") + return system +end + +get_storage = function (self) + local storage = {} + storage.floppycapacity = diskfree("/media/floppy") + storage.hdcapacity = diskfree() + storage.partitions = fs.read_file("/proc/partitions") + return storage +end + +get_network = function (self) + local network = {} + network.interfaces = querycmd("/sbin/ifconfig") + network.routes = querycmd("/sbin/route") + return network +end + +get_modules = function (self) + local modules = {} + modules.list = querycmd("/sbin/lsmod") + return modules +end + +get_proc = function (self) + local proc = {} + proc.processor = fs.read_file("/proc/cpuinfo") + proc.memory = fs.read_file("/proc/meminfo") + return proc +end |