|
|
@ -867,6 +867,81 @@ def importDbExternal(): |
|
|
|
|
|
|
|
|
|
|
|
return mw.returnJson(True, 'ok') |
|
|
|
return mw.returnJson(True, 'ok') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def importDbExternalProgress(): |
|
|
|
|
|
|
|
args = getArgs() |
|
|
|
|
|
|
|
data = checkArgs(args, ['file', 'name']) |
|
|
|
|
|
|
|
if not data[0]: |
|
|
|
|
|
|
|
return data[1] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file = args['file'] |
|
|
|
|
|
|
|
name = args['name'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cmd = 'cd '+mw.getServerDir()+'/mdserver-web && source bin/activate && ' |
|
|
|
|
|
|
|
cmd += 'python3 '+mw.getServerDir()+'/mdserver-web/plugins/mariadb/index.py import_db_external_progress_bar {"file":"'+file+'","name":"'+name+'"}' |
|
|
|
|
|
|
|
return mw.returnJson(True, 'ok',cmd) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def importDbExternalProgressBar(): |
|
|
|
|
|
|
|
args = getArgs() |
|
|
|
|
|
|
|
data = checkArgs(args, ['file', 'name']) |
|
|
|
|
|
|
|
if not data[0]: |
|
|
|
|
|
|
|
return data[1] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file = args['file'] |
|
|
|
|
|
|
|
name = args['name'] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import_dir = mw.getRootDir() + '/backup/import/' |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
file_path = import_dir + file |
|
|
|
|
|
|
|
if not os.path.exists(file_path): |
|
|
|
|
|
|
|
return mw.returnJson(False, '文件突然消失?') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
exts = ['sql', 'gz', 'zip'] |
|
|
|
|
|
|
|
ext = mw.getFileSuffix(file) |
|
|
|
|
|
|
|
if ext not in exts: |
|
|
|
|
|
|
|
return mw.returnJson(False, '导入数据库格式不对!') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tmp = file.split('/') |
|
|
|
|
|
|
|
tmpFile = tmp[len(tmp) - 1] |
|
|
|
|
|
|
|
tmpFile = tmpFile.replace('.sql.' + ext, '.sql') |
|
|
|
|
|
|
|
tmpFile = tmpFile.replace('.' + ext, '.sql') |
|
|
|
|
|
|
|
tmpFile = tmpFile.replace('tar.', '') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# print(tmpFile) |
|
|
|
|
|
|
|
import_sql = "" |
|
|
|
|
|
|
|
if file.find("sql.gz") > -1: |
|
|
|
|
|
|
|
cmd = 'cd ' + import_dir + ' && gzip -dc ' + \ |
|
|
|
|
|
|
|
file + " > " + import_dir + tmpFile |
|
|
|
|
|
|
|
info = mw.execShell(cmd) |
|
|
|
|
|
|
|
if info[1] == "": |
|
|
|
|
|
|
|
import_sql = import_dir + tmpFile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if file.find(".zip") > -1: |
|
|
|
|
|
|
|
cmd = 'cd ' + import_dir + ' && unzip -o ' + file |
|
|
|
|
|
|
|
mw.execShell(cmd) |
|
|
|
|
|
|
|
import_sql = import_dir + tmpFile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if file.find("tar.gz") > -1: |
|
|
|
|
|
|
|
cmd = 'cd ' + import_dir + ' && tar -zxvf ' + file |
|
|
|
|
|
|
|
mw.execShell(cmd) |
|
|
|
|
|
|
|
import_sql = import_dir + tmpFile |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if file.find(".sql") > -1 and file.find(".sql.gz") == -1: |
|
|
|
|
|
|
|
import_sql = import_dir + file |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if import_sql == "": |
|
|
|
|
|
|
|
return mw.returnJson(False, '未找SQL文件') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pwd = pSqliteDb('config').where('id=?', (1,)).getField('mysql_root') |
|
|
|
|
|
|
|
sock = getSocketFile() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
my_cnf = getConf() |
|
|
|
|
|
|
|
mysql_cmd = getServerDir() + '/bin/mariadb --defaults-file=' + my_cnf + \ |
|
|
|
|
|
|
|
' -uroot -p"' + pwd + '" -f ' + name |
|
|
|
|
|
|
|
mysql_cmd_progress_bar = "pv -t -p " + import_sql + '|'+ mysql_cmd |
|
|
|
|
|
|
|
print(mysql_cmd_progress_bar) |
|
|
|
|
|
|
|
rdata = os.system(mysql_cmd_progress_bar) |
|
|
|
|
|
|
|
return "" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def deleteDbBackup(): |
|
|
|
def deleteDbBackup(): |
|
|
|
args = getArgs() |
|
|
|
args = getArgs() |
|
|
@ -3258,6 +3333,10 @@ if __name__ == "__main__": |
|
|
|
print(importDbBackup()) |
|
|
|
print(importDbBackup()) |
|
|
|
elif func == 'import_db_external': |
|
|
|
elif func == 'import_db_external': |
|
|
|
print(importDbExternal()) |
|
|
|
print(importDbExternal()) |
|
|
|
|
|
|
|
elif func == 'import_db_external_progress': |
|
|
|
|
|
|
|
print(importDbExternalProgress()) |
|
|
|
|
|
|
|
elif func == 'import_db_external_progress_bar': |
|
|
|
|
|
|
|
print(importDbExternalProgressBar()) |
|
|
|
elif func == 'delete_db_backup': |
|
|
|
elif func == 'delete_db_backup': |
|
|
|
print(deleteDbBackup()) |
|
|
|
print(deleteDbBackup()) |
|
|
|
elif func == 'get_db_backup_list': |
|
|
|
elif func == 'get_db_backup_list': |
|
|
|