From eb82684152ffb0acddf67da92e4533a0190eb258 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 10 十月 2025 18:27:31 +0800 Subject: [PATCH] 对接口 --- server/visits/admin_timer/src/main/java/com/doumee/api/DatabaseController.java | 104 ++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 93 insertions(+), 11 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..53bc14e 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; @@ -8,15 +10,19 @@ import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; 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,18 +36,35 @@ @Autowired private PlatformJobService platformJobService; + @Autowired + private SystemDictDataBiz systemDictDataBiz; @ApiOperation("鏁版嵁搴撳浠斤紝淇濈暀鏈�杩�7涓浠絪ql") - @GetMapping("/backupDatabase") + @PostMapping("/backupDatabase") 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