From 880241700386e5ac5995546f70bac4a7f823612c Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期一, 28 四月 2025 14:33:25 +0800 Subject: [PATCH] 代码初始化 --- server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java | 100 +++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 91 insertions(+), 9 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..daa238d 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.core.model.ApiResponse; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.service.business.third.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,11 +14,15 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.io.BufferedReader; import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; +import java.io.IOException; +import java.io.InputStreamReader; +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.Statement; +import java.text.SimpleDateFormat; +import java.util.*; /** * @author 姹熻箘韫� @@ -30,6 +36,8 @@ @Autowired private PlatformJobService platformJobService; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @ApiOperation("鏁版嵁搴撳浠斤紝淇濈暀鏈�杩�7涓浠絪ql") @@ -37,11 +45,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()) { @@ -53,11 +76,70 @@ deleteOldFiles(path,7);//淇濈暀鏈�杩�7涓枃浠� } catch (Exception e) { e.printStackTrace(); + log.error("鏁版嵁搴撳浠藉け璐�."+e.getMessage()); } return ApiResponse.failed("鏁版嵁搴撳浠藉け璐�" ); } + public void run() { + SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String currentDateTime = dateFormat.format(new Date()); + String fileName = "backup_" + currentDateTime + ".sql"; + try { + Class.forName("com.mysql.cj.jdbc.Driver"); + Connection connection = DriverManager.getConnection("localhost:3306/antaiwuliu", "root", "Atwl@2024"); + Statement statement = connection.createStatement(); + + String query = "SELECT * INTO OUTFILE '" + fileName + "' FROM your_table"; + statement.execute(query); + + System.out.println("Database backup successful to " + fileName); + + statement.close(); + connection.close(); + } catch (Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + new DatabaseController().run();; + } + + 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