监控完成

pull/109/head
midoks 7 years ago
parent c68a7d78c8
commit 0a1c1c5580
  1. 33
      class/core/system_api.py
  2. 7
      plugins/abkill/abkill.py
  3. 5
      route/system.py
  4. 10
      static/js/control.js
  5. 30
      task.py
  6. 2
      templates/default/control.html

@ -6,9 +6,10 @@ import os
import re import re
import math import math
from flask import Flask, session
import db
import public import public
from flask import Flask, session
class system_api: class system_api:
@ -482,8 +483,36 @@ class system_api:
if stype == '0': if stype == '0':
public.execShell("rm -f " + filename) public.execShell("rm -f " + filename)
elif stype == '1':
_day = int(day)
if _day < 1:
return public.returnJson(False, "设置失败!")
public.writeFile(filename, day)
elif stype == 'del':
if not public.isRestart():
return public.returnJson(False, '请等待所有安装任务完成再执行')
os.remove("data/system.db")
sql = db.Sql().dbfile('system')
csql = public.readFile('data/sql/system.sql')
csql_list = csql.split(';')
for index in range(len(csql_list)):
sql.execute(csql_list[index], ())
return public.returnJson(True, "监控服务已关闭")
else:
data = {}
if os.path.exists(filename):
try:
data['day'] = int(public.readFile(filename))
except:
data['day'] = 30
data['status'] = True
else:
data['day'] = 30
data['status'] = False
return public.getJson(data)
return public.returnMsg(True, "设置成功!") return public.returnJson(True, "设置成功!")
# 重启面板 # 重启面板
def reWeb(self, get): def reWeb(self, get):

@ -4,9 +4,11 @@
# 1、将此文件重命名为btkill.py , 然后上传到服务器/root目录 # 1、将此文件重命名为btkill.py , 然后上传到服务器/root目录
# 2、执行 python /root/btkill.py # 2、执行 python /root/btkill.py
import psutil
import time import time
import os import os
import sys
sys.path.append("/usr/local/lib/python2.7/site-packages")
import psutil
class btkill: class btkill:
@ -15,6 +17,7 @@ class btkill:
def checkMain(self): def checkMain(self):
pids = psutil.pids() pids = psutil.pids()
print pids
num = 0 num = 0
for pid in pids: for pid in pids:
try: try:
@ -27,6 +30,7 @@ class btkill:
cputimes = p.cpu_times() cputimes = p.cpu_times()
if cputimes.user < 0.1: if cputimes.user < 0.1:
continue continue
print p
percent = p.cpu_percent(interval=0.1) percent = p.cpu_percent(interval=0.1)
vm = p.memory_info().vms vm = p.memory_info().vms
if percent > self.__limit or vm > self.__vmsize: if percent > self.__limit or vm > self.__vmsize:
@ -68,6 +72,7 @@ class btkill:
num = 0 num = 0
while True: while True:
num += self.checkMain() num += self.checkMain()
print "查杀完成, 共查杀[" + str(num) + "]个异常进程!"
time.sleep(3) time.sleep(3)
print '=======================================' print '======================================='
print "查杀完成, 共查杀[" + str(num) + "]个异常进程!" print "查杀完成, 共查杀[" + str(num) + "]个异常进程!"

@ -43,8 +43,9 @@ def diskInfo():
@system.route('/set_control', methods=['POST']) @system.route('/set_control', methods=['POST'])
def setControl(): def setControl():
stype = request.form.get('type', '') stype = request.form.get('type', '')
data = {'status': True, 'day': 30} day = request.form.get('day', '')
return public.getJson(data) data = system_api.system_api().setControl(stype, day)
return data
@system.route('/get_load_average', methods=['GET']) @system.route('/get_load_average', methods=['GET'])

@ -156,18 +156,18 @@ function setControl(act){
$.post('/system/set_control','type='+type+'&day='+day,function(rdata){ $.post('/system/set_control','type='+type+'&day='+day,function(rdata){
layer.close(loadT); layer.close(loadT);
layer.msg(rdata.msg,{icon:rdata.status?1:2}); layer.msg(rdata.msg,{icon:rdata.status?1:2});
}); },'json');
} }
//清理记录 //清理记录
function CloseControl(){ function closeControl(){
layer.confirm(lan.control.close_log_msg,{title:lan.control.close_log,icon:3,closeBtn:2}, function() { layer.confirm(lan.control.close_log_msg,{title:lan.control.close_log,icon:3,closeBtn:2}, function() {
loadT = layer.msg(lan.public.the,{icon:16,time:0}) loadT = layer.msg(lan.public.the,{icon:16,time:0})
$.post('/config?action=SetControl','type=del',function(rdata){ $.post('/system/set_control','type=del',function(rdata){
layer.close(loadT); layer.close(loadT);
$.get('/system?action=ReWeb',function(){}); // $.get('/system?action=ReWeb',function(){});
layer.msg(rdata.msg,{icon:rdata.status?1:2}); layer.msg(rdata.msg,{icon:rdata.status?1:2});
}); },'json');
}); });
} }

@ -201,9 +201,9 @@ def systemTask():
import time import time
sm = system_api.system_api() sm = system_api.system_api()
filename = 'data/control.conf' filename = 'data/control.conf'
sql = db.Sql().dbfile('system') sql = db.Sql().dbfile('system')
csql = public.readFile('data/sql/system.sql') csql = public.readFile('data/sql/system.sql')
csql_list = csql.split(';') csql_list = csql.split(';')
for index in range(len(csql_list)): for index in range(len(csql_list)):
sql.execute(csql_list[index], ()) sql.execute(csql_list[index], ())
@ -327,7 +327,6 @@ def systemTask():
diskInfo = None diskInfo = None
count = 0 count = 0
reloadNum += 1 reloadNum += 1
print "end---|"
if reloadNum > 1440: if reloadNum > 1440:
reloadNum = 0 reloadNum = 0
# if os.path.exists('data/ssl.pl'): # if os.path.exists('data/ssl.pl'):
@ -345,25 +344,6 @@ def systemTask():
time.sleep(30) time.sleep(30)
systemTask() systemTask()
def check502Task():
# 502错误检查线程
try:
while True:
if os.path.exists('/www/server/panel/data/502Task.pl'):
check502()
time.sleep(600)
except:
time.sleep(600)
check502Task()
def btkill():
# 自动结束异常进程
import btkill
b = btkill.btkill()
b.start()
if __name__ == "__main__": if __name__ == "__main__":
import threading import threading
@ -371,12 +351,4 @@ if __name__ == "__main__":
t.setDaemon(True) t.setDaemon(True)
t.start() t.start()
# p = threading.Thread(target=check502Task)
# p.setDaemon(True)
# p.start()
p = threading.Thread(target=btkill)
p.setDaemon(True)
p.start()
startTask() startTask()

@ -27,7 +27,7 @@
</div> </div>
</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:50px; border-left:#ccc 1px solid; margin-right:0">
<button class="btn btn-default btn-sm" type="button" onclick="CloseControl()">清空记录</button> <button class="btn btn-default btn-sm" type="button" onclick="closeControl()">清空记录</button>
</div> </div>
</div> </div>
<div class="control"> <div class="control">

Loading…
Cancel
Save