mirror of
https://github.com/midoks/mdserver-web.git
synced 2026-10-10 04:19:26 +08:00
up
This commit is contained in:
+45
-22
@@ -1501,7 +1501,8 @@ def dumpMysqlData(version):
|
||||
|
||||
# print getServerDir()
|
||||
cmd = getServerDir() + "/bin/mysqldump -uroot -p" + \
|
||||
pwd + " --databases " + args['db'] + " > /tmp/dump.sql"
|
||||
pwd + " --databases " + args['db'] + \
|
||||
" > /tmp/" + args['db'] + ".sql"
|
||||
ret = mw.execShell(cmd)
|
||||
|
||||
if ret[0] == '':
|
||||
@@ -1509,33 +1510,55 @@ def dumpMysqlData(version):
|
||||
return 'fail'
|
||||
|
||||
|
||||
from threading import Thread
|
||||
from time import sleep
|
||||
|
||||
|
||||
def async(f):
|
||||
def wrapper(*args, **kwargs):
|
||||
thr = Thread(target=f, args=args, kwargs=kwargs)
|
||||
thr.start()
|
||||
return wrapper
|
||||
|
||||
|
||||
@async
|
||||
def doFullSync(db):
|
||||
|
||||
import paramiko
|
||||
paramiko.util.log_to_file('paramiko.log')
|
||||
ssh = paramiko.SSHClient()
|
||||
|
||||
SSH_PRIVATE_KEY = '/Users/midoks/.ssh/id_rsa'
|
||||
key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
|
||||
ssh.load_system_host_keys()
|
||||
ssh.connect(hostname='8.210.55.220', port=22, username='root', pkey=key)
|
||||
cmd = "cd /www/server/mdserver-web && python /www/server/mdserver-web/plugins/mysql/index.py dump_mysql_data {\"db\":'" + db + "'} "
|
||||
stdin, stdout, stderr = ssh.exec_command(cmd)
|
||||
result = stdout.read()
|
||||
result_err = stderr.read()
|
||||
print(result.decode(), result_err.decode())
|
||||
|
||||
print mw.execShell('scp root@8.210.55.220:/tmp/' + db + '.sql /tmp')
|
||||
|
||||
mw.execShell('stop slave')
|
||||
|
||||
pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root')
|
||||
cmd = getServerDir() + "/bin/mysql -uroot -p" + pwd + " < /tmp/" + db + ".sql"
|
||||
print cmd
|
||||
print mw.execShell(cmd)
|
||||
|
||||
mw.execShell('start slave')
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def fullSync(version=''):
|
||||
args = getArgs()
|
||||
data = checkArgs(args, ['db'])
|
||||
if not data[0]:
|
||||
return data[1]
|
||||
|
||||
# import paramiko
|
||||
# paramiko.util.log_to_file('paramiko.log')
|
||||
# ssh = paramiko.SSHClient()
|
||||
|
||||
# SSH_PRIVATE_KEY = '/Users/midoks/.ssh/id_rsa'
|
||||
# key = paramiko.RSAKey.from_private_key_file(SSH_PRIVATE_KEY)
|
||||
# ssh.load_system_host_keys()
|
||||
# ssh.connect(hostname='8.210.55.220', port=22, username='root', pkey=key)
|
||||
# cmd = "cd /www/server/mdserver-web && python /www/server/mdserver-web/plugins/mysql/index.py dump_mysql_data {\"db\":'" + args[
|
||||
# 'db'] + "'} "
|
||||
# stdin, stdout, stderr = ssh.exec_command(cmd)
|
||||
# result = stdout.read()
|
||||
# result_err = stderr.read()
|
||||
# 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)
|
||||
doFullSync(args['db'])
|
||||
|
||||
return mw.returnJson(True, '同步成功!')
|
||||
|
||||
|
||||
@@ -1345,7 +1345,7 @@ function getFullSyncStatus(db){
|
||||
var btn = '<div class="table_toolbar"><span class="sync btn btn-default btn-sm" id="begin_full_sync" title="">开始</span></div>';
|
||||
var loadOpen = layer.open({
|
||||
type: 1,
|
||||
title: '全量同步'+db,
|
||||
title: '全量同步['+db+']',
|
||||
area: '500px',
|
||||
content:"<div class='bt-form pd20 c6'>\
|
||||
<div class='divtable mtb10'>\
|
||||
@@ -1357,7 +1357,8 @@ function getFullSyncStatus(db){
|
||||
</div>"
|
||||
});
|
||||
|
||||
$('#begin_full_sync').click(function(){
|
||||
|
||||
function fullSync(db){
|
||||
myPost('full_sync', {db:db}, function(data){
|
||||
var rdata = $.parseJSON(data.data);
|
||||
layer.msg(rdata['msg']);
|
||||
@@ -1365,6 +1366,11 @@ function getFullSyncStatus(db){
|
||||
masterOrSlaveConf();
|
||||
}, 3000);
|
||||
});
|
||||
}
|
||||
|
||||
fullSync(db);
|
||||
$('#begin_full_sync').click(function(){
|
||||
fullSync(db);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1481,7 +1487,7 @@ function masterOrSlaveConf(version=''){
|
||||
list += '<tr>';
|
||||
list += '<td>' + rdata.data[i]['name'] +'</td>';
|
||||
list += '<td style="text-align:right">' +
|
||||
'<a href="javascript:;" class="btlink" onclick="getFullSyncStatus(\'\',\''+rdata.data[i]['name']+'\')" title="全量同步">全量同步</a>' +
|
||||
'<a href="javascript:;" class="btlink" onclick="getFullSyncStatus(\''+rdata.data[i]['name']+'\')" title="全量同步">全量同步</a>' +
|
||||
'</td>';
|
||||
list += '</tr>';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user