pull/109/head
midoks 7 years ago
parent 2fdf7bb4a9
commit 9c11d1f217
  1. 2
      class/core/plugin_api.py
  2. 57
      class/core/system_api.py
  3. 10
      route/plugins.py
  4. 17
      route/system.py
  5. 1337
      static/js/control.js
  6. 19
      task.py
  7. 4
      templates/default/control.html

@ -44,6 +44,7 @@ class plugin_api:
if not self.__tasks: if not self.__tasks:
self.__tasks = public.M('tasks').where( self.__tasks = public.M('tasks').where(
"status!=?", ('1',)).field('status,name').select() "status!=?", ('1',)).field('status,name').select()
if sName.find('php-') != -1: if sName.find('php-') != -1:
tmp = sName.split('-') tmp = sName.split('-')
sName = tmp[0] sName = tmp[0]
@ -188,6 +189,7 @@ class plugin_api:
pg = self.getPluginInfo(data) pg = self.getPluginInfo(data)
plugins_info.append(pg) plugins_info.append(pg)
# print plugins_info, data
return plugins_info return plugins_info
def getAllList(self, sType='0'): def getAllList(self, sType='0'):

@ -336,6 +336,7 @@ class system_api:
return networkInfo return networkInfo
except Exception, e: except Exception, e:
print e
return None return None
def getNetWorkApi(self, get=None): def getNetWorkApi(self, get=None):
@ -386,34 +387,72 @@ class system_api:
'/panel/' + scriptFile) '/panel/' + scriptFile)
return self.GetMemInfo() return self.GetMemInfo()
def getNetWorkIo(self, start, end): def getNetWorkIoData(self, start, end):
# 取指定时间段的网络Io # 取指定时间段的网络Io
data = public.M('network').dbfile('system').where("addtime>=? AND addtime<=?", (start, end)).field( data = public.M('network').dbfile('system').where("addtime>=? AND addtime<=?", (start, end)).field(
'id,up,down,total_up,total_down,down_packets,up_packets,addtime').order('id asc').select() 'id,up,down,total_up,total_down,down_packets,up_packets,addtime').order('id asc').select()
return self.ToAddtime(data) return self.toAddtime(data)
def getDiskIo(self, start, end): def getDiskIoData(self, start, end):
# 取指定时间段的磁盘Io # 取指定时间段的磁盘Io
data = public.M('diskio').dbfile('system').where("addtime>=? AND addtime<=?", (start, end)).field( data = public.M('diskio').dbfile('system').where("addtime>=? AND addtime<=?", (start, end)).field(
'id,read_count,write_count,read_bytes,write_bytes,read_time,write_time,addtime').order('id asc').select() 'id,read_count,write_count,read_bytes,write_bytes,read_time,write_time,addtime').order('id asc').select()
return self.ToAddtime(data) return self.toAddtime(data)
def getCpuIo(self, start, end): def getCpuIoData(self, start, end):
# 取指定时间段的CpuIo # 取指定时间段的CpuIo
data = public.M('cpuio').dbfile('system').where("addtime>=? AND addtime<=?", data = public.M('cpuio').dbfile('system').where("addtime>=? AND addtime<=?",
(start, end)).field('id,pro,mem,addtime').order('id asc').select() (start, end)).field('id,pro,mem,addtime').order('id asc').select()
return self.ToAddtime(data, True) return self.toAddtime(data, True)
def getLoadAverage(self, start, end): def getLoadAverageData(self, start, end):
data = public.M('load_average').dbfile('system').where("addtime>=? AND addtime<=?", ( data = public.M('load_average').dbfile('system').where("addtime>=? AND addtime<=?", (
start, end)).field('id,pro,one,five,fifteen,addtime').order('id asc').select() start, end)).field('id,pro,one,five,fifteen,addtime').order('id asc').select()
return self.ToAddtime(data) return self.toAddtime(data)
def toAddtime(self, data, tomem=False):
import time
# 格式化addtime列
if tomem:
import psutil
mPre = (psutil.virtual_memory().total / 1024 / 1024) / 100
length = len(data)
he = 1
if length > 100:
he = 1
if length > 1000:
he = 3
if length > 10000:
he = 15
if he == 1:
for i in range(length):
data[i]['addtime'] = time.strftime(
'%m/%d %H:%M', time.localtime(float(data[i]['addtime'])))
if tomem and data[i]['mem'] > 100:
data[i]['mem'] = data[i]['mem'] / mPre
return data
else:
count = 0
tmp = []
for value in data:
if count < he:
count += 1
continue
value['addtime'] = time.strftime(
'%m/%d %H:%M', time.localtime(float(value['addtime'])))
if tomem and value['mem'] > 100:
value['mem'] = value['mem'] / mPre
tmp.append(value)
count = 0
return tmp
# 重启面板 # 重启面板
def reWeb(self, get): def reWeb(self, get):
# if not public.IsRestart(): return # if not public.IsRestart(): return
# public.returnMsg(False,'EXEC_ERR_TASK'); # public.returnMsg(False,'EXEC_ERR_TASK');
public.ExecShell('/etc/init.d/bt restart &') # public.ExecShell('/etc/init.d/bt restart &')
return True return True
# 修复面板 # 修复面板

@ -1,14 +1,14 @@
# coding:utf-8 # coding:utf-8
from flask import Blueprint, render_template
from flask import jsonify
from flask import request
import psutil
import time import time
import sys import sys
import os import os
import json import json
import psutil
from flask import Blueprint, render_template
from flask import jsonify
from flask import request
sys.path.append("class/core") sys.path.append("class/core")
import public import public

@ -8,6 +8,7 @@ import sys
from flask import Flask, session from flask import Flask, session
from flask import Blueprint, render_template from flask import Blueprint, render_template
from flask import jsonify from flask import jsonify
from flask import request
sys.path.append("class/core") sys.path.append("class/core")
import public import public
@ -47,23 +48,31 @@ def getControl():
@system.route('/get_load_average', methods=['GET']) @system.route('/get_load_average', methods=['GET'])
def getLoadAverage(): def getLoadAverage():
data = {'status': True, 'day': 30} start = request.args.get('start', '')
end = request.args.get('end', '')
data = system_api.system_api().getLoadAverageData(start, end)
return public.getJson(data) return public.getJson(data)
@system.route('/get_cpu_io', methods=['GET']) @system.route('/get_cpu_io', methods=['GET'])
def getCpuIo(): def getCpuIo():
data = {'status': True, 'day': 30} start = request.args.get('start', '')
end = request.args.get('end', '')
data = system_api.system_api().getCpuIoData(start, end)
return public.getJson(data) return public.getJson(data)
@system.route('/get_disk_io', methods=['GET']) @system.route('/get_disk_io', methods=['GET'])
def getDiskIo(): def getDiskIo():
data = {'status': True, 'day': 30} start = request.args.get('start', '')
end = request.args.get('end', '')
data = system_api.system_api().getDiskIoData(start, end)
return public.getJson(data) return public.getJson(data)
@system.route('/get_network_io', methods=['GET']) @system.route('/get_network_io', methods=['GET'])
def getNetworkIo(): def getNetworkIo():
data = {'status': True, 'day': 30} start = request.args.get('start', '')
end = request.args.get('end', '')
data = system_api.system_api().getNetWorkIoData(start, end)
return public.getJson(data) return public.getJson(data)

File diff suppressed because it is too large Load Diff

@ -6,8 +6,10 @@
import sys import sys
import os import os
import json import json
# import psutil
import time import time
print sys.path
sys.path.append("/usr/local/lib/python2.7/site-packages")
import psutil
sys.path.append(os.getcwd() + "/class/core") sys.path.append(os.getcwd() + "/class/core")
reload(sys) reload(sys)
@ -303,13 +305,13 @@ def systemTask():
'up,down,total_up,total_down,down_packets,up_packets,addtime', data) 'up,down,total_up,total_down,down_packets,up_packets,addtime', data)
sql.table('network').where( sql.table('network').where(
"addtime<?", (deltime,)).delete() "addtime<?", (deltime,)).delete()
if os.path.exists('/proc/diskstats'): # if os.path.exists('/proc/diskstats'):
data = (diskInfo['read_count'], diskInfo['write_count'], diskInfo['read_bytes'], diskInfo[ data = (diskInfo['read_count'], diskInfo['write_count'], diskInfo['read_bytes'], diskInfo[
'write_bytes'], diskInfo['read_time'], diskInfo['write_time'], addtime) 'write_bytes'], diskInfo['read_time'], diskInfo['write_time'], addtime)
sql.table('diskio').add( sql.table('diskio').add(
'read_count,write_count,read_bytes,write_bytes,read_time,write_time,addtime', data) 'read_count,write_count,read_bytes,write_bytes,read_time,write_time,addtime', data)
sql.table('diskio').where( sql.table('diskio').where(
"addtime<?", (deltime,)).delete() "addtime<?", (deltime,)).delete()
# LoadAverage # LoadAverage
load_average = getLoadAverage() load_average = getLoadAverage()
@ -351,6 +353,7 @@ def getMemUsed():
try: try:
import psutil import psutil
mem = psutil.virtual_memory() mem = psutil.virtual_memory()
print 'mem:', mem
memInfo = {'memTotal': mem.total / 1024 / 1024, 'memFree': mem.free / 1024 / 1024, memInfo = {'memTotal': mem.total / 1024 / 1024, 'memFree': mem.free / 1024 / 1024,
'memBuffers': mem.buffers / 1024 / 1024, 'memCached': mem.cached / 1024 / 1024} 'memBuffers': mem.buffers / 1024 / 1024, 'memCached': mem.cached / 1024 / 1024}
tmp = memInfo['memTotal'] - memInfo['memFree'] - \ tmp = memInfo['memTotal'] - memInfo['memFree'] - \

@ -40,8 +40,8 @@
<span class="tit">区间检索:</span> <span class="tit">区间检索:</span>
<span class="gt" onclick="Wday(1,'getload')">昨天</span> <span class="gt" onclick="Wday(1,'getload')">昨天</span>
<span class="gt on" onclick="Wday(0,'getload')">今天</span> <span class="gt on" onclick="Wday(0,'getload')">今天</span>
<span class="gt" onclick="Wday(7,'getload')">最近30</span> <span class="gt" onclick="Wday(7,'getload')">最近7</span>
<span class="gt" onclick="Wday(30,'getload')">自定义时间</span> <span class="gt" onclick="Wday(30,'getload')">最近30天</span>
<div class="ss"> <div class="ss">
<span class="st">自定义时间</span> <span class="st">自定义时间</span>
<div class="time"> <div class="time">

Loading…
Cancel
Save