diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/BackupController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/BackupController.java new file mode 100644 index 0000000..c9d9e6d --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/BackupController.java @@ -0,0 +1,63 @@ +package com.ruoyi.web.controller.monitor; + +import com.ruoyi.common.config.RuoYiConfig; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.AjaxResult; +import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.io.File; + +/** + * packageName com.ruoyi.web.controller.monitor + * + * @author wangxy + * @version JDK 8 + * @className BackupController + * @date 2024/9/13 + * @description 数据库备份 + */ +@Controller +@RequestMapping("/monitor/backup") +public class BackupController extends BaseController { + + private String prefix = "/monitor/backup"; + + @RequiresPermissions("monitor:backup:view") + @GetMapping() + public String backData() { + return prefix + "/backup"; + } + + @GetMapping("backups") + @ResponseBody + public AjaxResult backups(@RequestParam String username, + @RequestParam String password, + @RequestParam String hostname, + @RequestParam String port, + @RequestParam String databaseName) { + String sqlFileName = RuoYiConfig.getDataBaseBackUp() + ".sql"; + File file = new File(File.separator + sqlFileName); + //目录生成 + if (!file.getParentFile().exists()) { + file.getParentFile().mkdirs(); + } + try { + ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-Fp", "-f", sqlFileName, + "\"host=" + hostname, "port=" + port, "user=" + username, "password=" + password, "dbname=" + databaseName + "\""); + Process process = processBuilder.start(); + if (process.waitFor() == 0) { + return AjaxResult.success("备份成功!"); + } else { + return AjaxResult.error("备份失败!"); + } + } catch (Exception e) { + e.printStackTrace(); + return AjaxResult.error("备份失败!"); + } + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java index 3020d00..1eede55 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/DruidController.java @@ -1,77 +1,25 @@ package com.ruoyi.web.controller.monitor; -import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.date.DatePattern; -import cn.hutool.core.date.DateUtil; -import cn.hutool.core.io.FileUtil; -import cn.hutool.core.util.NumberUtil; -import cn.hutool.core.util.ZipUtil; -import cn.hutool.system.OsInfo; -import cn.hutool.system.SystemUtil; -import com.ruoyi.common.config.RuoYiConfig; -import com.ruoyi.common.core.domain.AjaxResult; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import com.ruoyi.common.core.controller.BaseController; -import java.io.File; -import java.io.FileWriter; -import java.io.IOException; -import java.sql.Connection; -import java.sql.DriverManager; -import java.sql.ResultSet; -import java.sql.Statement; -import java.util.Comparator; -import java.util.Date; -import java.util.List; -import java.util.stream.Collectors; /** * druid 监控 - * + * * @author ruoyi */ @Controller @RequestMapping("/monitor/data") -public class DruidController extends BaseController -{ +public class DruidController extends BaseController { private String prefix = "/druid"; @RequiresPermissions("monitor:data:view") @GetMapping() - public String index() - { + public String index() { return redirect(prefix + "/index.html"); } - - @GetMapping("backups") - @ResponseBody - public AjaxResult backups(@RequestParam String username, - @RequestParam String password, - @RequestParam String hostname, - @RequestParam String port, - @RequestParam String databaseName) { - String sqlFileName = RuoYiConfig.getDataBaseBackUp() + ".sql"; - File file = new File(File.separator + sqlFileName); - //目录生成 - if (!file.getParentFile().exists()) { - file.getParentFile().mkdirs(); - } - try { - ProcessBuilder processBuilder = new ProcessBuilder("pg_dump", "-Fp", "-f", sqlFileName, - "\"host="+hostname, "port="+port, "user="+username, "password="+password, "dbname="+databaseName+"\""); - Process process = processBuilder.start(); - if (process.waitFor() == 0) { - return AjaxResult.success("备份成功!"); - } else { - return AjaxResult.error("备份失败!"); - } - } catch (Exception e) { - e.printStackTrace(); - return AjaxResult.error("备份失败!"); - } - } - }