binlog日志功能基本OK

pull/503/head
midoks 2 years ago
parent 496e94ad54
commit c0310a2628
  1. 18
      plugins/mysql/index.py
  2. 85
      plugins/mysql/index_mysql.py
  3. 16
      plugins/mysql/js/mysql.js

@ -358,7 +358,7 @@ def binLogList():
for x in range(len(alist)): for x in range(len(alist)):
f = alist[x] f = alist[x]
t = {} t = {}
if f.startswith(log_bin_name) and f != (log_bin_name + '.index'): if f.startswith(log_bin_name) and not f.endswith('.index'):
abspath = data_dir + '/' + f abspath = data_dir + '/' + f
t['name'] = f t['name'] = f
t['size'] = os.path.getsize(abspath) t['size'] = os.path.getsize(abspath)
@ -387,22 +387,6 @@ def binLogList():
return mw.getJson(data) return mw.getJson(data)
def binLogListLook():
args = getArgs()
data = checkArgs(args, ['file'])
if not data[0]:
return data[1]
data_dir = getDataDir()
my_bin = getServerDir() + '/bin'
my_binlog_cmd = my_bin + '/mysqlbinlog'
cmd = my_binlog_cmd + ' --no-defaults --base64-output=decode-rows -vvvv ' + \
data_dir + '/' + args['file'] + '|tail -50'
print(cmd)
def cleanBinLog(): def cleanBinLog():
db = pMysqlDb() db = pMysqlDb()
cleanTime = time.strftime('%Y-%m-%d %H:%i:%s', time.localtime()) cleanTime = time.strftime('%Y-%m-%d %H:%i:%s', time.localtime())

@ -53,6 +53,22 @@ def getDataDir():
return tmp.groups()[0].strip() return tmp.groups()[0].strip()
def getRelayLogName():
file = getConf()
content = mw.readFile(file)
rep = 'relay-log\s*=\s*(.*)'
tmp = re.search(rep, content)
return tmp.groups()[0].strip()
def getLogBinName():
file = getConf()
content = mw.readFile(file)
rep = 'log-bin\s*=\s*(.*)'
tmp = re.search(rep, content)
return tmp.groups()[0].strip()
def binLogListLook(args): def binLogListLook(args):
file = args['file'] file = args['file']
@ -93,3 +109,72 @@ def binLogListLookDecode(args):
rdata['data'] = data[0] rdata['data'] = data[0]
return rdata return rdata
def binLogListTraceRelay(args):
file = args['file']
line = args['line']
relay_name = getRelayLogName()
data_dir = getDataDir()
alist = os.listdir(data_dir)
relay_list = []
for x in range(len(alist)):
f = alist[x]
t = {}
if f.startswith(relay_name) and not f.endswith('.index'):
relay_list.append(f)
file = relay_list[0]
my_bin = getServerDir() + '/bin'
my_binlog_cmd = my_bin + '/mysqlbinlog'
cmd = my_binlog_cmd + ' --no-defaults --base64-output=decode-rows -vvvv ' + \
data_dir + '/' + file + '|tail -' + str(line)
data = mw.execShell(cmd)
rdata = {}
rdata['cmd'] = cmd
rdata['data'] = data[0]
return rdata
def binLogListTraceBinLog(args):
rdata = {}
file = args['file']
line = args['line']
data_dir = getDataDir()
log_bin_name = getLogBinName()
alist = os.listdir(data_dir)
log_bin_l = []
for x in range(len(alist)):
f = alist[x]
t = {}
if f.startswith(log_bin_name) and not f.endswith('.index'):
log_bin_l.append(f)
if len(log_bin_l) == 0:
rdata['cmd'] = ''
rdata['data'] = '无BINLOG'
return rdata
file = log_bin_l[0]
my_bin = getServerDir() + '/bin'
my_binlog_cmd = my_bin + '/mysqlbinlog'
cmd = my_binlog_cmd + ' --no-defaults --base64-output=decode-rows -vvvv ' + \
data_dir + '/' + file + '|tail -' + str(line)
data = mw.execShell(cmd)
rdata['cmd'] = cmd
rdata['data'] = data[0]
return rdata

@ -1243,7 +1243,7 @@ function myBinRollingLogs(_name, func, _args, line){
copyText(cmd); copyText(cmd);
}); });
var ebody = '<textarea readonly="readonly" style="margin: 0px;width: 100%;height: 360px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log">'+data+'</textarea>'; var ebody = '<textarea readonly="readonly" style="margin: 0px;width: 100%;height: 570px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log">'+data+'</textarea>';
$("#my_rolling_logs").html(ebody); $("#my_rolling_logs").html(ebody);
var ob = document.getElementById('roll_info_log'); var ob = document.getElementById('roll_info_log');
ob.scrollTop = ob.scrollHeight; ob.scrollTop = ob.scrollHeight;
@ -1254,7 +1254,7 @@ function myBinRollingLogs(_name, func, _args, line){
layer.open({ layer.open({
type: 1, type: 1,
title: _name + '日志', title: _name + '日志',
area: '640px', area: ['800px','700px'],
end: function(){ end: function(){
if (reqTimer){ if (reqTimer){
clearInterval(reqTimer); clearInterval(reqTimer);
@ -1270,14 +1270,14 @@ function myBinRollingLogs(_name, func, _args, line){
</div>\ </div>\
</div>\ </div>\
<div class="change-default" style="padding:0px 20px 0px;" id="my_rolling_logs">\ <div class="change-default" style="padding:0px 20px 0px;" id="my_rolling_logs">\
<textarea readonly="readonly" style="margin: 0px;width: 100%;height: 360px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log"></textarea>\ <textarea readonly="readonly" style="margin: 0px;width: 100%;height: 570px;background-color: #333;color:#fff; padding:0 5px" id="roll_info_log"></textarea>\
</div>', </div>',
success:function(){ success:function(){
var fileName = _args['file']; var fileName = _args['file'];
requestLogs(func,fileName,file_line); requestLogs(func,fileName,file_line);
reqTimer = setInterval(function(){ reqTimer = setInterval(function(){
requestLogs(func,fileName,file_line); requestLogs(func,fileName,file_line);
},3000); },1000);
} }
}); });
} }
@ -1315,13 +1315,13 @@ function myBinLogsRender(page){
$('#binlog_list .look').click(function(){ $('#binlog_list .look').click(function(){
var i = $(this).data('index'); var i = $(this).data('index');
var file = rdata.data[i]['name']; var file = rdata.data[i]['name'];
myBinRollingLogs('查看','binLogListLook',{'file':file },100); myBinRollingLogs('查看BINLOG','binLogListLook',{'file':file },100);
}); });
$('#binlog_list .look_decode').click(function(){ $('#binlog_list .look_decode').click(function(){
var i = $(this).data('index'); var i = $(this).data('index');
var file = rdata.data[i]['name']; var file = rdata.data[i]['name'];
myBinRollingLogs('查看','binLogListLookDecode',{'file':file },100); myBinRollingLogs('查看解码BINLOG','binLogListLookDecode',{'file':file },100);
}); });
}); });
} }
@ -1348,11 +1348,11 @@ function myBinLogs(){
myBinLogsRender(1); myBinLogsRender(1);
$('.soft-man-con .relay_trace').click(function(){ $('.soft-man-con .relay_trace').click(function(){
myBinRollingLogs('中继日志跟踪','binLogListTraceRelay',{'file':''},100);
}); });
$('.soft-man-con .binlog_trace').click(function(){ $('.soft-man-con .binlog_trace').click(function(){
myBinRollingLogs('最新BINLOG日志跟踪','binLogListTraceBinLog',{'file':''},100);
}); });
} }

Loading…
Cancel
Save