pull/109/head
midoks 4 years ago
parent b5d8ccd7d8
commit eaba6954fe
  1. 40
      plugins/mysql/index.py
  2. 29
      plugins/mysql/js/mysql.js

@ -1493,6 +1493,10 @@ def dumpMysqlData(version):
if not data[0]: if not data[0]:
return data[1] return data[1]
dlist = findBinlogDoDb()
if not args['db'] in dlist:
return 'fail'
pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root') pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root')
# print getServerDir() # print getServerDir()
@ -1511,21 +1515,27 @@ def fullSync(version=''):
if not data[0]: if not data[0]:
return data[1] return data[1]
import paramiko # import paramiko
paramiko.util.log_to_file('paramiko.log') # paramiko.util.log_to_file('paramiko.log')
ssh = paramiko.SSHClient() # ssh = paramiko.SSHClient()
SSH_PRIVATE_KEY = '/Users/midoks/.ssh/id_rsa' # SSH_PRIVATE_KEY = '/Users/midoks/.ssh/id_rsa'
key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY) # key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
ssh.load_system_host_keys() # ssh.load_system_host_keys()
ssh.connect(hostname='8.210.55.220', port=22, username='root', pkey=key) # ssh.connect(hostname='8.210.55.220', port=22, username='root', pkey=key)
cmd = "/www/server/mdserver-web/plugins/mysql/index.py dump_mysql_data {\"db\":'" + args[ # cmd = "cd /www/server/mdserver-web && python /www/server/mdserver-web/plugins/mysql/index.py dump_mysql_data {\"db\":'" + args[
'db'] + "'} " # 'db'] + "'} "
stdin, stdout, stderr = ssh.exec_command(cmd) # stdin, stdout, stderr = ssh.exec_command(cmd)
result = stdout.read() # result = stdout.read()
result_err = stderr.read() # result_err = stderr.read()
# 打印输出 # print(result.decode(), result_err.decode())
print(result.decode(), result_err.decode())
print mw.execShell('scp root@8.210.55.220:/tmp/dump.sql /tmp')
pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root')
cmd = getServerDir() + "/bin/mysql -uroot -p" + pwd + " < /tmp/dump.sql"
print cmd
print mw.execShell(cmd)
return mw.returnJson(True, '同步成功!') return mw.returnJson(True, '同步成功!')

@ -1342,15 +1342,30 @@ function deleteSlave(){
function getFullSyncStatus(db){ function getFullSyncStatus(db){
myPost('full_sync', {db:db}, function(data){ var btn = '<div class="table_toolbar"><span class="sync btn btn-default btn-sm" id="begin_full_sync" title="">开始</span></div>';
var rdata = $.parseJSON(data.data); var loadOpen = layer.open({
layer.msg(rdata['msg']); type: 1,
setTimeout(function(){ title: '全量同步'+db,
masterOrSlaveConf(); area: '500px',
}, 3000); content:"<div class='bt-form pd20 c6'>\
<div class='divtable mtb10'>\
<div class='progress'>\
<div class='progress-bar' role='progressbar' aria-valuenow='0' aria-valuemin='0' aria-valuemax='100' style='min-width: 2em;'>0%</div>\
</div>\
</div>\
"+btn+"\
</div>"
}); });
$('#begin_full_sync').click(function(){
myPost('full_sync', {db:db}, function(data){
var rdata = $.parseJSON(data.data);
layer.msg(rdata['msg']);
setTimeout(function(){
masterOrSlaveConf();
}, 3000);
});
});
} }
function masterOrSlaveConf(version=''){ function masterOrSlaveConf(version=''){

Loading…
Cancel
Save