Update index.py

pull/632/head
Mr Chen 5 months ago
parent face89efc5
commit f1478369b5
  1. 34
      plugins/migration_api/index.py

@ -244,8 +244,7 @@ class classApi:
self.write_speed('size', pdata['size']) self.write_speed('size', pdata['size'])
self.write_speed('used', 0) self.write_speed('used', 0)
self.write_speed('speed', 0) self.write_speed('speed', 0)
write_log("|-上传文件[{}], 总大小:{}, 当前分片大小为:{}".format(pdata['name'], write_log("|-上传文件[{}], 总大小:{}, 当前分片大小为:{}".format(pdata['name'], toSize(pdata['size']), toSize(self._buff_size)))
toSize(pdata['size']), toSize(self._buff_size)))
while True: while True:
buff_size = self._buff_size buff_size = self._buff_size
max_buff = int(pdata['size'] - pdata['start']) max_buff = int(pdata['size'] - pdata['start'])
@ -269,8 +268,7 @@ class classApi:
success_num = up_buff_num - 3 # 如再顺利发送3次则继续提升分片大小 success_num = up_buff_num - 3 # 如再顺利发送3次则继续提升分片大小
if self._buff_size > max_buff_size: if self._buff_size > max_buff_size:
self._buff_size = max_buff_size self._buff_size = max_buff_size
write_log( write_log("|-发送顺利, 尝试调整分片大小为: {}".format(toSize(self._buff_size)))
"|-发送顺利, 尝试调整分片大小为: {}".format(toSize(self._buff_size)))
except Exception as e: except Exception as e:
times = time.time() - start_time times = time.time() - start_time
total_time += times total_time += times
@ -301,7 +299,7 @@ class classApi:
times = time.time() - start_time times = time.time() - start_time
total_time += times total_time += times
if type(result) == int: if result['status'] and result['msg'] == 'size':
if result == split_done: if result == split_done:
split_num += 1 split_num += 1
else: else:
@ -310,14 +308,14 @@ class classApi:
if split_num > 10: if split_num > 10:
write_log("|-上传失败, 跳过本次上传任务") write_log("|-上传失败, 跳过本次上传任务")
return False return False
if result > pdata['size']: if result['data'] > pdata['size']:
write_log("|-上传失败, 跳过本次上传任务") write_log("|-上传失败, 跳过本次上传任务")
return False return False
self.write_speed('used', result) self.write_speed('used', result)
self.write_speed('speed', int(buff_size / times)) self.write_speed('speed', int(buff_size / times))
write_log("|-已上传 {},上传速度 {}/s, 共用时 {}{:.2f}秒, {:.2f}%".format(toSize(float(result)), toSize( write_log("|-已上传 {},上传速度 {}/s, 共用时 {}{:.2f}秒, {:.2f}%".format(toSize(result['data']), toSize(
buff_size / times), int(total_time // 60), total_time % 60, (float(result) / float(pdata['size']) * 100))) buff_size / times), int(total_time // 60), total_time % 60, (float(result['data']) / float(pdata['size']) * 100)))
pdata['start'] = result # 设置断点 pdata['start'] = result['data'] # 设置断点
else: else:
if not result['status']: # 如果服务器响应上传失败 if not result['status']: # 如果服务器响应上传失败
write_log(result['msg']) write_log(result['msg'])
@ -332,8 +330,7 @@ class classApi:
self.write_speed('total_size', pdata['size']) self.write_speed('total_size', pdata['size'])
self.write_speed('end_time', int(time.time())) self.write_speed('end_time', int(time.time()))
write_log("|-总耗时:{} 分钟, {:.2f} 秒, 平均速度:{}/s".format(int(total_time // write_log("|-总耗时:{} 分钟, {:.2f} 秒, 平均速度:{}/s".format(int(total_time // 60), total_time % 60, toSize(pdata['size'] / total_time)))
60), total_time % 60, toSize(pdata['size'] / total_time)))
return True return True
def send_list(self, s_files): def send_list(self, s_files):
@ -369,8 +366,7 @@ class classApi:
write_log("|-正在压缩目录[{}]...".format(spath)) write_log("|-正在压缩目录[{}]...".format(spath))
self.write_speed('done', '正在压缩') self.write_speed('done', '正在压缩')
mw.execShell( mw.execShell("cd {} && tar zcvf {} ./ > /dev/null".format(spath, zip_file))
"cd {} && tar zcvf {} ./ > /dev/null".format(spath, zip_file))
if not os.path.exists(zip_file): if not os.path.exists(zip_file):
self.error("目录[{}]打包失败!".format(spath)) self.error("目录[{}]打包失败!".format(spath))
return False return False
@ -662,7 +658,7 @@ class classApi:
def export_database(self, name, index): def export_database(self, name, index):
self.write_speed('done', '正在导出数据库') self.write_speed('done', '正在导出数据库')
write_log("|-正在导出数据库{}...".format(name)) write_log("|-正在导出数据库[{}]...".format(name))
conn = self.getMyConn() conn = self.getMyConn()
result = conn.execute("show databases") result = conn.execute("show databases")
isError = self.isSqlError(result) isError = self.isSqlError(result)
@ -724,18 +720,14 @@ class classApi:
db_dir = '/www/backup/import' db_dir = '/www/backup/import'
new_db_name = 'psync_import_{}.sql.gz'.format(dbInfo['name']) new_db_name = 'psync_import_{}.sql.gz'.format(dbInfo['name'])
upload_file = db_dir + '/' + new_db_name upload_file = db_dir + '/' + new_db_name
self.send('/files/exec_shell', self.send('/files/exec_shell', {"shell": "rm -f " + upload_file, "path": "/www"}, 30)
{"shell": "rm -f " + upload_file, "path": "/www"}, 30)
if self.upload_file(filename, upload_file): if self.upload_file(filename, upload_file):
self.write_speed('done', '正在导入数据库') self.write_speed('done', '正在导入数据库')
write_log("|-正在导入数据库{}...".format(dbInfo['name'])) write_log("|-正在导入数据库{}...".format(dbInfo['name']))
t = self.sendPlugins('mysql', 'import_db_external', { self.sendPlugins('mysql', 'import_db_external', {"file": new_db_name, "name": dbInfo['name']})
"file": new_db_name, "name": dbInfo['name']}) self.send('/files/exec_shell',{"shell": "rm -f " + upload_file, "path": "/www"}, 30)
# print(t)
self.send('/files/exec_shell',
{"shell": "rm -f " + upload_file, "path": "/www"}, 30)
return True return True
self.state('databases', index, -1, "数据传输失败") self.state('databases', index, -1, "数据传输失败")
return False return False

Loading…
Cancel
Save