pull/518/head
Mr Chen 1 year ago
parent 6a27e69ee7
commit 558bfcb1ee
  1. 2
      class/core/config_api.py
  2. 13
      class/core/system_api.py
  3. 93
      route/static/app/index.js
  4. 7
      route/static/app/soft.js
  5. 2
      route/templates/default/index.html

@ -27,7 +27,7 @@ from flask import request
class config_api: class config_api:
__version = '0.16.2.1' __version = '0.16.2.2'
__api_addr = 'data/api.json' __api_addr = 'data/api.json'
def __init__(self): def __init__(self):

@ -299,7 +299,8 @@ class system_api:
data_list = data.strip().split("\n") data_list = data.strip().split("\n")
mac_version = '' mac_version = ''
for x in data_list: for x in data_list:
mac_version += x.split("\t")[1] + ' ' xlist = x.split("\t")
mac_version += xlist[len(xlist)-1] + ' '
arch_ver = mw.execShell("arch") arch_ver = mw.execShell("arch")
return mac_version + " (" + arch_ver[0].strip() + ")" return mac_version + " (" + arch_ver[0].strip() + ")"
@ -366,15 +367,15 @@ class system_api:
mem = psutil.virtual_memory() mem = psutil.virtual_memory()
if mw.getOs() == 'darwin': if mw.getOs() == 'darwin':
memInfo = { memInfo = {
'memTotal': mem.total / 1024 / 1024 'memTotal': mem.total,
} }
memInfo['memRealUsed'] = memInfo['memTotal'] * (mem.percent / 100) memInfo['memRealUsed'] = memInfo['memTotal'] * (mem.percent / 100)
else: else:
memInfo = { memInfo = {
'memTotal': mem.total / 1024 / 1024, 'memTotal': mem.total,
'memFree': mem.free / 1024 / 1024, 'memFree': mem.free,
'memBuffers': mem.buffers / 1024 / 1024, 'memBuffers': mem.buffers,
'memCached': mem.cached / 1024 / 1024 'memCached': mem.cached
} }
memInfo['memRealUsed'] = memInfo['memTotal'] - \ memInfo['memRealUsed'] = memInfo['memTotal'] - \

@ -6,7 +6,7 @@ $(function() {
$(this).find(".mask").css({ "color": "#d2edd8" }); $(this).find(".mask").css({ "color": "#d2edd8" });
$(this).find(".mem-re-con").css({ "display": "block" }); $(this).find(".mem-re-con").css({ "display": "block" });
$(this).find(".mem-re-con").animate({ "top": "0", opacity: 1 }); $(this).find(".mem-re-con").animate({ "top": "0", opacity: 1 });
$("#memory").text(lan.index.memre); $("#memory").text('内存释放');
} }
}, function() { }, function() {
$(this).removeClass("shine_green"); $(this).removeClass("shine_green");
@ -200,27 +200,34 @@ function clearSystem() {
} }
function setMemImg(info){ function setMemImg(info){
setCookie("memRealUsed", parseInt(info.memRealUsed));
$("#memory").html(parseInt(info.memRealUsed) + '/' + parseInt(info.memTotal) + ' (MB)'); var memRealUsed = toSize(info.memRealUsed);
setCookie("mem-before", $("#memory").text()); var memTotal = toSize(info.memTotal);
if (!getCookie('memSize')) setCookie('memSize', parseInt(info.memTotal));
var memRealUsedVal = memRealUsed.split(' ')[0];
var memTotalVal = memTotal.split(' ')[0];
var unit = memTotal.split(' ')[1];
var mem_txt = memRealUsedVal + '/' + memTotalVal + ' ('+ unit +')';
setCookie("mem-before", mem_txt);
$("#memory").html(mem_txt);
var memPre = Math.floor(info.memRealUsed / (info.memTotal / 100)); var memPre = Math.floor(info.memRealUsed / (info.memTotal / 100));
$("#left").html(memPre); $("#left").html(memPre);
setcolor(memPre, "#left", 75, 90, 95); setcolor(memPre, "#left", 75, 90, 95);
$("#state").html(info.cpuRealUsed);
setcolor(memPre, "#state", 30, 70, 90); var memFree = info.memTotal - info.memRealUsed;
setImg(); if (memFree/(1024*1024) < 64) {
$("#messageError").show();
$("#messageError").append('<p><span class="glyphicon glyphicon-alert" style="color: #ff4040; margin-right: 10px;">当前可用物理内存小于64M,这可能导致MySQL自动停止,站点502等错误,请尝试释放内存!</span></p>')
}
} }
function getInfo() { function getInfo() {
$.get("/system/system_total", function(info) { $.get("/system/system_total", function(info) {
setCookie("memRealUsed", parseInt(info.memRealUsed));
$("#memory").html(parseInt(info.memRealUsed) + '/' + parseInt(info.memTotal) + ' (MB)'); setMemImg(info);
setCookie("mem-before", $("#memory").text());
if (!getCookie('memSize')) setCookie('memSize', parseInt(info.memTotal));
var memPre = Math.floor(info.memRealUsed / (info.memTotal / 100));
$("#left").html(memPre);
setcolor(memPre, "#left", 75, 90, 95);
$("#info").html(info.system); $("#info").html(info.system);
$("#running").html(info.time); $("#running").html(info.time);
var _system = info.system; var _system = info.system;
@ -241,13 +248,8 @@ function getInfo() {
} }
$("#core").html(info.cpuNum + ' 核心'); $("#core").html(info.cpuNum + ' 核心');
$("#state").html(info.cpuRealUsed); $("#state").html(info.cpuRealUsed);
setcolor(memPre, "#state", 30, 70, 90); setcolor(info.cpuRealUsed, "#state", 30, 70, 90);
var memFree = info.memTotal - info.memRealUsed;
if (memFree < 64) {
$("#messageError").show();
$("#messageError").append('<p><span class="glyphicon glyphicon-alert" style="color: #ff4040; margin-right: 10px;">' + lan.index.mem_warning + '</span> </p>')
}
// if (info.isuser > 0) { // if (info.isuser > 0) {
// $("#messageError").show(); // $("#messageError").show();
@ -281,6 +283,7 @@ function setcolor(pre, s, s1, s2, s3) {
function getNet() { function getNet() {
var up, down; var up, down;
$.get("/system/network", function(net) { $.get("/system/network", function(net) {
$("#InterfaceSpeed").html(lan.index.interfacespeed + ": 1.0Gbps"); $("#InterfaceSpeed").html(lan.index.interfacespeed + ": 1.0Gbps");
$("#upSpeed").html(toSize(net.up)); $("#upSpeed").html(toSize(net.up));
$("#downSpeed").html(toSize(net.down)); $("#downSpeed").html(toSize(net.down));
@ -293,12 +296,17 @@ function getNet() {
setcolor(net.cpu[0], "#state", 30, 70, 90); setcolor(net.cpu[0], "#state", 30, 70, 90);
setCookie("upNet", net.up); setCookie("upNet", net.up);
setCookie("downNet", net.down); setCookie("downNet", net.down);
//负载
getLoad(net.load); getLoad(net.load);
// setMemImg(net.mem);
setImg();
//内存
setMemImg(net.mem);
//绑定hover事件
setImg();
showCpuTips(net); showCpuTips(net);
},'json'); },'json');
} }
@ -344,7 +352,7 @@ function netImg() {
tmp = getCookie("downNet"); tmp = getCookie("downNet");
} }
var tmpSize = toSize(tmp); var tmpSize = toSize(tmp);
default_unit = tmpSize.split(' ')[1]; default_unit = tmpSize.split(' ')[1] + '/s';
var upNetTmp = toSize(getCookie("upNet")); var upNetTmp = toSize(getCookie("upNet"));
@ -399,14 +407,10 @@ function netImg() {
yAxis: { yAxis: {
name: '单位 '+ default_unit, name: '单位 '+ default_unit,
splitLine: { splitLine: {
lineStyle: { lineStyle: { color: "#eee" }
color: "#eee"
}
}, },
axisLine: { axisLine: {
lineStyle: { lineStyle: { color: "#666" }
color: "#666"
}
} }
}, },
series: [{ series: [{
@ -474,6 +478,11 @@ function netImg() {
getNet(); getNet();
addData(true); addData(true);
echartsNetImg.setOption({ echartsNetImg.setOption({
yAxis: {
name: '单位 '+ default_unit,
splitLine: { lineStyle: { color: "#eee" } },
axisLine: { lineStyle: { color: "#666" } }
},
xAxis: { xAxis: {
data: xData data: xData
}, },
@ -632,7 +641,6 @@ function reBoot() {
content: '<div class="rebt-con"><div class="rebt-li"><a data-id="server" href="javascript:;">重启服务器</a></div><div class="rebt-li"><a data-id="panel" href="javascript:;">重启面板</a></div></div>' content: '<div class="rebt-con"><div class="rebt-li"><a data-id="server" href="javascript:;">重启服务器</a></div><div class="rebt-li"><a data-id="panel" href="javascript:;">重启面板</a></div></div>'
}); });
$('.rebt-con a').click(function () { $('.rebt-con a').click(function () {
var type = $(this).attr('data-id'); var type = $(this).attr('data-id');
switch (type) { switch (type) {
@ -757,6 +765,7 @@ function setSafeHide() {
setCookie('safeMsg', '1'); setCookie('safeMsg', '1');
$("#safeMsg").remove(); $("#safeMsg").remove();
} }
//查看报告 //查看报告
function showDanger(num, port) { function showDanger(num, port) {
var atxt = "因未使用安全隔离登录,所有IP都可以尝试连接,存在较高风险,请立即处理。"; var atxt = "因未使用安全隔离登录,所有IP都可以尝试连接,存在较高风险,请立即处理。";
@ -770,15 +779,15 @@ function showDanger(num, port) {
closeBtn: 1, closeBtn: 1,
shift: 5, shift: 5,
content: '<div class="pd20">\ content: '<div class="pd20">\
<table class="f14 showDanger"><tbody>\ <table class="f14 showDanger"><tbody>\
<tr><td class="text-right" width="150">风险类型</td><td class="f16" style="color:red">暴力破解 <a href="https://www.bt.cn/bbs/thread-9562-1-1.html" class="btlink f14" style="margin-left:10px" target="_blank">说明</a></td></tr>\ <tr><td class="text-right" width="150">风险类型</td><td class="f16" style="color:red">暴力破解 <a href="https://www.bt.cn/bbs/thread-9562-1-1.html" class="btlink f14" style="margin-left:10px" target="_blank">说明</a></td></tr>\
<tr><td class="text-right">累计遭遇攻击总数</td><td class="f16" style="color:red">' + num + ' <a href="javascript:showDangerIP();" class="btlink f14" style="margin-left:10px"></a><span class="c9 f12" style="margin-left:10px"></span></td></tr>\ <tr><td class="text-right">累计遭遇攻击总数</td><td class="f16" style="color:red">' + num + ' <a href="javascript:showDangerIP();" class="btlink f14" style="margin-left:10px"></a><span class="c9 f12" style="margin-left:10px"></span></td></tr>\
<tr><td class="text-right">风险等级</td><td class="f16" style="color:red"></td></tr>\ <tr><td class="text-right">风险等级</td><td class="f16" style="color:red"></td></tr>\
<tr><td class="text-right" style="vertical-align:top">风险描述</td><td style="line-height:20px">' + atxt + '</td></tr>\ <tr><td class="text-right" style="vertical-align:top">风险描述</td><td style="line-height:20px">' + atxt + '</td></tr>\
<tr><td class="text-right" style="vertical-align:top">可参考解决方案</td><td><p style="margin-bottom:8px">SSHSSH</p><p>便</p></td></tr>\ <tr><td class="text-right" style="vertical-align:top">可参考解决方案</td><td><p style="margin-bottom:8px">SSHSSH</p><p>便</p></td></tr>\
</tbody></table>\ </tbody></table>\
<div class="mtb20 text-center"><a href="https://www.bt.cn/admin/index.html" target="_blank" class="btn btn-success">立即部署隔离防护</a></div>\ <div class="mtb20 text-center"><a href="https://www.bt.cn/admin/index.html" target="_blank" class="btn btn-success">立即部署隔离防护</a></div>\
</div>' </div>'
}); });
$(".showDanger td").css("padding", "8px") $(".showDanger td").css("padding", "8px")
} }

@ -403,7 +403,12 @@ function indexListHtml(callback){
//首页软件列表 //首页软件列表
function indexSoft() { function indexSoft() {
indexListHtml(function(){ indexListHtml(function(){
$("#indexsoft").dragsort({ dragSelector: ".spanmove", dragBetween: true, dragEnd: saveOrder, placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>" }); $("#indexsoft").dragsort({
dragSelector: ".spanmove",
dragBetween: true,
dragEnd: saveOrder,
placeHolderTemplate: "<div class='col-sm-3 col-md-3 col-lg-3 dashed-border'></div>"
});
}); });
function saveOrder() { function saveOrder() {

@ -135,7 +135,7 @@ setTimeout(function() {
setTimeout(function() { setTimeout(function() {
getInfo(); getInfo();
}, 1500); }, 200);
</script> </script>
{% endblock %} {% endblock %}
Loading…
Cancel
Save