mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-10 04:59:25 +08:00
@@ -141,6 +141,7 @@ data/restart.pl
|
||||
data/ssl.pl
|
||||
data/edate.pl
|
||||
data/osname.pl
|
||||
data/only_netio_counters.pl
|
||||
data/system.db-journal
|
||||
data/hook_*.json
|
||||
|
||||
@@ -153,3 +154,4 @@ plugins/bk_demo
|
||||
debug.out
|
||||
|
||||
|
||||
|
||||
|
||||
+38
-35
@@ -437,12 +437,35 @@ class system_api:
|
||||
os.system('echo > /tmp/panelBoot.pl')
|
||||
return total, count
|
||||
|
||||
def psutilNetIoCounters(self):
|
||||
'''
|
||||
统计网卡流量
|
||||
'''
|
||||
stat_pl = 'data/only_netio_counters.pl'
|
||||
if os.path.exists(stat_pl):
|
||||
local_lo = (0, 0, 0, 0)
|
||||
ioName = psutil.net_io_counters(pernic=True).keys()
|
||||
for x in ioName:
|
||||
|
||||
if x.find("lo") > -1:
|
||||
local_lo = psutil.net_io_counters(
|
||||
pernic=True).get(x)[:4]
|
||||
|
||||
all_io = psutil.net_io_counters()[:4]
|
||||
result_io = tuple([all_io[i] - local_lo[i]
|
||||
for i in range(0, len(all_io))])
|
||||
|
||||
# print(local_lo)
|
||||
# print(all_io)
|
||||
# print(result_io)
|
||||
return result_io
|
||||
return psutil.net_io_counters()[:4]
|
||||
|
||||
def getNetWork(self):
|
||||
# return self.GetNetWorkApi(get);
|
||||
# 取网络流量信息
|
||||
try:
|
||||
# 取网络流量信息
|
||||
networkIo = psutil.net_io_counters()[:4]
|
||||
networkIo = self.psutilNetIoCounters()
|
||||
if not "otime" in session:
|
||||
session['up'] = networkIo[0]
|
||||
session['down'] = networkIo[1]
|
||||
@@ -470,38 +493,7 @@ class system_api:
|
||||
|
||||
return networkInfo
|
||||
except Exception as e:
|
||||
# print(e)
|
||||
return None
|
||||
|
||||
def getNetWorkApi(self):
|
||||
# 取网络流量信息
|
||||
try:
|
||||
tmpfile = 'data/network.temp'
|
||||
networkIo = psutil.net_io_counters()[:4]
|
||||
|
||||
if not os.path.exists(tmpfile):
|
||||
mw.writeFile(tmpfile, str(
|
||||
networkIo[0]) + '|' + str(networkIo[1]) + '|' + str(int(time.time())))
|
||||
|
||||
lastValue = mw.readFile(tmpfile).split('|')
|
||||
|
||||
ntime = time.time()
|
||||
networkInfo = {}
|
||||
networkInfo['upTotal'] = networkIo[0]
|
||||
networkInfo['downTotal'] = networkIo[1]
|
||||
networkInfo['up'] = round(
|
||||
float(networkIo[0] - int(lastValue[0])) / 1024 / (ntime - int(lastValue[2])), 2)
|
||||
networkInfo['down'] = round(
|
||||
float(networkIo[1] - int(lastValue[1])) / 1024 / (ntime - int(lastValue[2])), 2)
|
||||
networkInfo['downPackets'] = networkIo[3]
|
||||
networkInfo['upPackets'] = networkIo[2]
|
||||
|
||||
mw.writeFile(tmpfile, str(
|
||||
networkIo[0]) + '|' + str(networkIo[1]) + '|' + str(int(time.time())))
|
||||
|
||||
# networkInfo['cpu'] = self.GetCpuInfo(0.1)
|
||||
return networkInfo
|
||||
except:
|
||||
print("getNetWork error:", e)
|
||||
return None
|
||||
|
||||
def getNetWorkIoData(self, start, end):
|
||||
@@ -567,14 +559,19 @@ class system_api:
|
||||
def setControl(self, stype, day):
|
||||
|
||||
filename = 'data/control.conf'
|
||||
stat_pl = 'data/only_netio_counters.pl'
|
||||
|
||||
if stype == '0':
|
||||
mw.execShell("rm -f " + filename)
|
||||
mw.execShell("rm -rf " + filename)
|
||||
elif stype == '1':
|
||||
_day = int(day)
|
||||
if _day < 1:
|
||||
return mw.returnJson(False, "设置失败!")
|
||||
mw.writeFile(filename, day)
|
||||
elif stype == '2':
|
||||
mw.execShell("rm -rf " + stat_pl)
|
||||
elif stype == '3':
|
||||
mw.execShell("echo 'True' > " + stat_pl)
|
||||
elif stype == 'del':
|
||||
if not mw.isRestart():
|
||||
return mw.returnJson(False, '请等待所有安装任务完成再执行')
|
||||
@@ -597,6 +594,12 @@ class system_api:
|
||||
else:
|
||||
data['day'] = 30
|
||||
data['status'] = False
|
||||
|
||||
if os.path.exists(stat_pl):
|
||||
data['stat_all_status'] = True
|
||||
else:
|
||||
data['stat_all_status'] = False
|
||||
|
||||
return mw.getJson(data)
|
||||
|
||||
return mw.returnJson(True, "设置成功!")
|
||||
|
||||
+38
-17
@@ -77,7 +77,7 @@ $(".networkbtn").click(function(){
|
||||
function Wday(day,name){
|
||||
var now = (new Date().getTime())/1000;
|
||||
if(day==0){
|
||||
var b = (new Date(GetToday() + " 00:00:01").getTime())/1000;
|
||||
var b = (new Date(getToday() + " 00:00:01").getTime())/1000;
|
||||
b = Math.round(b);
|
||||
var e = Math.round(now);
|
||||
}
|
||||
@@ -111,7 +111,7 @@ function Wday(day,name){
|
||||
}
|
||||
}
|
||||
|
||||
function GetToday(){
|
||||
function getToday(){
|
||||
var mydate = new Date();
|
||||
var str = "" + mydate.getFullYear() + "/";
|
||||
str += (mydate.getMonth()+1) + "/";
|
||||
@@ -123,30 +123,51 @@ function GetToday(){
|
||||
function getStatus(){
|
||||
loadT = layer.msg('正在读取,请稍候...',{icon:16,time:0})
|
||||
$.post('/system/set_control','type=-1',function(rdata){
|
||||
// console.log(rdata);
|
||||
layer.close(loadT);
|
||||
|
||||
if(rdata.status){
|
||||
$("#openJK").html("<input class='btswitch btswitch-ios' id='ctswitch' type='checkbox' checked><label class='btswitch-btn' for='ctswitch' onclick='setControl()'></label>")
|
||||
$("#openJK").html("<input class='btswitch btswitch-ios' id='ctswitch' type='checkbox' checked><label class='btswitch-btn' for='ctswitch' onclick='setControl(\"openjk\", true)'></label>");
|
||||
} else {
|
||||
$("#openJK").html("<input class='btswitch btswitch-ios' id='ctswitch' type='checkbox'><label class='btswitch-btn' for='ctswitch' onclick='setControl(\"openjk\",false)'></label>");
|
||||
}
|
||||
else{
|
||||
$("#openJK").html("<input class='btswitch btswitch-ios' id='ctswitch' type='checkbox'><label class='btswitch-btn' for='ctswitch' onclick='setControl()'></label>")
|
||||
|
||||
if(rdata.stat_all_status){
|
||||
$("#statAll").html("<input class='btswitch btswitch-ios' id='stat_witch' type='checkbox' checked><label class='btswitch-btn' for='stat_witch' onclick='setControl(\"stat\",true)'></label>");
|
||||
} else{
|
||||
$("#statAll").html("<input class='btswitch btswitch-ios' id='stat_witch' type='checkbox'><label class='btswitch-btn' for='stat_witch' onclick='setControl(\"stat\",false)'></label>");
|
||||
}
|
||||
$("#saveDay").val(rdata.day)
|
||||
|
||||
$("#save_day").val(rdata.day);
|
||||
|
||||
},'json');
|
||||
}
|
||||
getStatus();
|
||||
|
||||
//设置监控状态
|
||||
function setControl(act){
|
||||
var day = $("#saveDay").val()
|
||||
if(day < 1){
|
||||
layer.msg('保存天数不合法!',{icon:2});
|
||||
return;
|
||||
}
|
||||
if(act){
|
||||
var type = $("#ctswitch").prop('checked')?'1':'0';
|
||||
}else{
|
||||
function setControl(act, value=false){
|
||||
|
||||
if (act == 'openjk'){
|
||||
var type = $("#ctswitch").prop('checked')?'0':'1';
|
||||
var day = $("#save_day").val();
|
||||
if(day < 1){
|
||||
layer.msg('保存天数不合法!',{icon:2});
|
||||
return;
|
||||
}
|
||||
} else if (act == 'stat'){
|
||||
var type = $("#stat_witch").prop('checked')?'2':'3';
|
||||
} else if (act == 'save_day'){
|
||||
var type = $("#ctswitch").prop('checked')?'1':'0';
|
||||
var day = $("#save_day").val();
|
||||
|
||||
if(type == 0){
|
||||
layer.msg('先开启监控!',{icon:2});
|
||||
return;
|
||||
}
|
||||
|
||||
if(day < 1){
|
||||
layer.msg('保存天数不合法!',{icon:2});
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
loadT = layer.msg('正在处理,请稍候...',{icon:16,time:0})
|
||||
@@ -156,13 +177,13 @@ function setControl(act){
|
||||
},'json');
|
||||
}
|
||||
|
||||
|
||||
//清理记录
|
||||
function closeControl(){
|
||||
layer.confirm('您真的清空所有监控记录吗?',{title:'清空记录',icon:3,closeBtn:2}, function() {
|
||||
loadT = layer.msg('正在处理,请稍候...',{icon:16,time:0})
|
||||
$.post('/system/set_control','type=del',function(rdata){
|
||||
layer.close(loadT);
|
||||
// $.get('/system?action=ReWeb',function(){});
|
||||
layer.msg(rdata.msg,{icon:rdata.status?1:2});
|
||||
},'json');
|
||||
});
|
||||
|
||||
@@ -13,20 +13,26 @@
|
||||
<div class="mr50 pull-left">
|
||||
<div class="ss-text pull-left">
|
||||
<em>开启监控</em>
|
||||
<div class='ssh-item' id="openJK">
|
||||
</div>
|
||||
<div class='ssh-item' id="openJK"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mr50 pull-left">
|
||||
<div class="ss-text pull-left">
|
||||
<em>保存天数:</em>
|
||||
<input class="bt-input-text" id="saveDay" value="" type="number">
|
||||
<input class="bt-input-text" id="save_day" value="" type="number">
|
||||
</div>
|
||||
<div class="ss-text pull-left" style="margin-left:10px">
|
||||
<button class="btn btn-default btn-sm" type="button" onclick="setControl(true);">更改</button>
|
||||
<button class="btn btn-default btn-sm" type="button" onclick="setControl('save_day',true);">更改</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mr50 pull-left" style="padding-left:50px; border-left:#ccc 1px solid; margin-right:0">
|
||||
<div class="mr50 pull-left" style="padding-left:10px; border-left:#ccc 1px solid; margin-right:0">
|
||||
<div class="mr50 pull-left">
|
||||
<div class="ss-text pull-left">
|
||||
<em>仅统计外网</em>
|
||||
<div class='ssh-item' id="statAll"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<button class="btn btn-default btn-sm" type="button" onclick="closeControl()">清空记录</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user