local c2 = "uname -m 2>/dev/null"
local c3 = "cat /proc/cpuinfo|grep model\\ name|cut -d: -f2 2>/dev/null"
local c4 = "cat /proc/cpuinfo|grep cpu\\ model|cut -d: -f2 2>/dev/null"
- local c5 = "cat /proc/meminfo|grep MemTotal|cut -d: -f2 2>/dev/null"
-
- local s = luci.util.trim(exec(c1))
- local m = ""
- local r = ""
-
- if s == "" then
- s = luci.util.trim(exec(c2))
- m = luci.util.trim(exec(c3))
+ local c5 = "cat /proc/meminfo|grep MemTotal|awk {' print $2 '} 2>/dev/null"
+ local c6 = "cat /proc/meminfo|grep ^Cached|awk {' print $2 '} 2>/dev/null"
+ local c7 = "cat /proc/meminfo|grep MemFree|awk {' print $2 '} 2>/dev/null"
+ local c8 = "cat /proc/meminfo|grep Buffers|awk {' print $2 '} 2>/dev/null"
+
+ local system = luci.util.trim(exec(c1))
+ local model = ""
+ local memtotal = luci.util.trim(exec(c5))
+ local memcached = luci.util.trim(exec(c6))
+ local memfree = luci.util.trim(exec(c7))
+ local membuffers = luci.util.trim(exec(c8))
+ local perc_memfree = math.floor((memfree/memtotal)*100)
+ local perc_membuffers = math.floor((membuffers/memtotal)*100)
+ local perc_memcached = math.floor((memcached/memtotal)*100)
+
+ if system == "" then
+ system = luci.util.trim(exec(c2))
+ model = luci.util.trim(exec(c3))
else
- m = luci.util.trim(exec(c4))
+ model = luci.util.trim(exec(c4))
end
-
- r = luci.util.trim(exec(c5))
-
- return s, m, r
+
+ return system, model, memtotal, memcached, membuffers, memfree, perc_memfree, perc_membuffers, perc_memcached
end
-- Reads the syslog
function action_status()
local data = {}
- data.s, data.m, data.r = luci.sys.sysinfo()
+ data.system, data.model, data.memtotal, data.memcached, data.membuffers, data.memfree, data.perc_memfree, data.perc_membuffers, data.perc_memcached = luci.sys.sysinfo()
+
data.wifi = luci.sys.wifi.getiwconfig()
<table cellspacing="0" cellpadding="6" class="smalltext">
<tr>
<th><%:system_type%>:</th>
-<td><%=s%></td>
+<td><%=system%></td>
</tr>
<tr>
<th><%:cpu%>:</th>
-<td><%=m%></td>
+<td><%=model%></td>
</tr>
<tr>
-<th><%:ram%>:</th>
-<td><%=r%></td>
+<th><%:ram%>:<br /><small><%:total%>/<%:cached%>/<%:buffers%>/<%:free%></small></th>
+<td><%=memtotal%> / <%=memcached%> / <%=membuffers%> / <%=memfree%> KB<br />
+<div id="memorybar">
+ <div id="memfree" style="width:<%=perc_memfree%>%"></div>
+ <div id="membuffers" style="width:<%=perc_membuffers%>%"></div>
+ <div id="memcached" style="width:<%=perc_memcached%>%"></div>
+</div>
+</td>
</tr>
</table>
<br /><br />
.ok {
color: green;
font-weight: bold;
-}
\ No newline at end of file
+}
+
+#memorybar {
+ width:200px;
+ height:9px;
+ border:1px solid #bbb;
+ background-color: #262626;
+}
+
+#memfree, #membuffers, #memcached {
+ float:right;
+ border:1px solid #262626;
+ height:7px;
+}
+
+#memfree {
+ background-color:green;
+}
+
+#membuffers {
+ background-color:#ffcb05;
+}
+
+#memcached {
+ background-color:#dc0065;
+}
+
font-size: 70%;
}
+#memorybar {
+ width:200px;
+ height:8px;
+ border:1px solid #bbb;
+ background-color:red
+}
+
+#memfree, #membuffers, #memcached {
+ float:right;
+ border:1px solid #bbb;
+ height:6px;
+}
+
+#memfree {
+ background-color:green;
+}
+
+#membuffers {
+ background-color:yellow;
+}
+
+#memcached {
+ background-color:orange;
+}
+
/* obligatory IE6 Voodoo Code */
* html body {
* html div.cbi-value-description {
margin-left: 40%;
}
+