From 4c2bae1c7e6f84699091a7e094120808137138dc Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期四, 07 十一月 2024 11:38:59 +0800 Subject: [PATCH] 最新版本541200007 --- server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java | 63 +++++++++++++++++++++++++++++-- 1 files changed, 59 insertions(+), 4 deletions(-) diff --git a/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java b/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java index 8ee19de..e2c58ae 100644 --- a/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java +++ b/server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java @@ -1,6 +1,8 @@ package com.doumee.api; +import com.doumee.biz.system.SystemDictDataBiz; import com.doumee.core.model.ApiResponse; +import com.doumee.core.utils.Constants; import com.doumee.core.utils.Date; import com.doumee.core.utils.DateUtil; import com.doumee.service.business.PlatformJobService; @@ -12,7 +14,10 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.BufferedReader; import java.io.File; +import java.io.IOException; +import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -30,6 +35,8 @@ @Autowired private PlatformJobService platformJobService; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @ApiOperation("鏁版嵁搴撳浠斤紝淇濈暀鏈�杩�7涓浠絪ql") @@ -37,11 +44,26 @@ public ApiResponse backupDatabase() { try { String timestamp = DateUtil.getNowLongTime(); - String path = "/usr/local/jars/db/"; +// String path = "/usr/local/jars/db/"; +// String backupPath = path + timestamp + ".sql"; + String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_DIR).getCode(); + String code = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MYSQL_BACKUP_CDOE).getCode() ; String backupPath = path + timestamp + ".sql"; - // 浣跨敤mysqldump鍛戒护杩涜鏁版嵁搴撳浠� - Process process = Runtime.getRuntime().exec(new String[]{"mysqldump ", "-u", "root", "-p","Atwl@2024", "antaiwuliu", "-r", backupPath}); - process.waitFor(); + code= code.replace("${param}",backupPath); + log.error("鏁版嵁搴撳浠�================: " + code); + ProcessBuilder builder = new ProcessBuilder(code); + // 閲嶅畾鍚戦敊璇祦鍒版爣鍑嗚緭鍑烘祦 + builder.redirectErrorStream(true); + // stdout + Process process = builder.start(); + new Thread(new ProcessHandleRunnable(process)).start(); + process.waitFor(); // wait if needed + + /* // 浣跨敤mysqldump鍛戒护杩涜鏁版嵁搴撳浠� + Process process = Runtime.getRuntime().exec(code); + process.getErrorStream(); + process.getInputStream(); + process.waitFor();*/ // 妫�鏌ュ浠芥槸鍚︽垚鍔� if (new File(backupPath).exists()) { @@ -58,6 +80,39 @@ return ApiResponse.failed("鏁版嵁搴撳浠藉け璐�" ); } + static class ProcessHandleRunnable implements Runnable { + private Process process; + + public ProcessHandleRunnable(Process process) { + this.process = process; + } + + public void run() { + BufferedReader br = null; + InputStreamReader reader = null; + try { + System.out.println("start run..."); + reader = new InputStreamReader(process.getInputStream()); + br = new BufferedReader(reader); + String line = null; + while ((line = br.readLine()) != null) { + System.out.println(line); + } + System.out.println("stop run..."); + } catch (IOException ex) { + ex.printStackTrace(); + } finally { + try { + if (br != null) + br.close(); + if (reader != null) + reader.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } /** * @param path */ -- Gitblit v1.9.3