2 local nxo = require "nixio"
3 local fs = require "nixio.fs"
4 local sinfo = nxo.sysinfo()
5 local load1 = nxo.bit.div(sinfo.loads[1] * 100, 1)
6 local load15 = nxo.bit.div(sinfo.loads[3] * 100, 1)
8 local meminfo = fs.readfile("/proc/meminfo")
9 local totalram = nxo.bit.div(sinfo.totalram, 1024)
10 local freeram = nxo.bit.div(sinfo.freeram, 1024)
11 local buffers = nxo.bit.div(sinfo.bufferram, 1024)
12 local cached = tonumber(meminfo:match("Cached:%s+([0-9]+)%s+"))
13 local memused = nxo.bit.div(totalram - freeram - cached - buffers, 1024)
14 totalram = nxo.bit.div(totalram, 1024)
16 local totalswap = nxo.bit.div(sinfo.totalswap, 1048576)
17 local usedswap = totalswap - nxo.bit.div(sinfo.freeswap, 1048576)
20 local function date_format(secs)
21 local suff = {"min", "h", "d"}
26 secs = nxo.bit.div(secs, 1)
28 mins = nxo.bit.div(secs, 60)
33 hour = nxo.bit.div(mins, 60)
38 days = nxo.bit.div(hour, 24)
43 return string.format("%.0fd %02.0fh %02.0fmin", days, hour, mins)
45 return string.format("%02.0fh %02.0fmin", hour, mins)
49 <table class="dbstattbl">
52 <td><%=load1%>% / <%=load15%>%</td>
56 <td><%=memused%> MiB / <%=totalram%> MiB</td>
60 <% if totalswap > 0 then %>
63 <td><%=usedswap%> MiB / <%=totalswap%> MiB</td>
69 <td><%=date_format(sinfo.uptime)%></td>