From dca641d6644116629051730d2195d215fcef32af Mon Sep 17 00:00:00 2001 From: chenxudong Date: Tue, 18 Mar 2025 12:03:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=9C=A8=E5=A4=87=E4=BB=BDSQ?= =?UTF-8?q?L=E6=97=B6=EF=BC=8C=E5=AF=BC=E5=87=BAMySQL=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/config/ElePropertyConfig.java | 4 +++ .../software/manage/tasks/BackupTask.java | 30 ++++++++++++++----- .../src/main/resources/application.properties | 3 +- 3 files changed, 28 insertions(+), 9 deletions(-) diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java index 7b31970..a57527d 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/config/ElePropertyConfig.java @@ -39,6 +39,10 @@ public class ElePropertyConfig { @Value("${data.repo.download.path}") private String repoDownloadPath; + @Getter + @Value("${backup.mysql.script.path}") + private String backupMysqlScriptPath; + @Getter @Value("${tmp.file.store.days}") private int tmpFileStoreDays; diff --git a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java index 88b5265..d08bd94 100644 --- a/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java +++ b/electrmangnetic/src/main/java/com/electromagnetic/industry/software/manage/tasks/BackupTask.java @@ -5,7 +5,9 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import cn.hutool.core.io.FileUtil; +import cn.hutool.core.text.StrFormatter; import cn.hutool.core.util.ArrayUtil; +import cn.hutool.core.util.RuntimeUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.electromagnetic.industry.software.common.enums.EleDataTypeEnum; @@ -29,6 +31,8 @@ import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.io.File; import java.io.FileFilter; +import java.util.Arrays; +import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -161,19 +165,14 @@ public class BackupTask { @Scheduled(cron = "0 0 * * * ?") public void backupSql() { try { + dumpMysql(); String sqlDirs = elePropertyConfig.getSqlDirs(); File[] files = new File(sqlDirs).listFiles((file, name) -> name.endsWith(".sql")); - File maxModifyTimeFile = null; - long tmp = 0; if (ArrayUtil.isEmpty(files)) { return; } - for (File file : files) { - if (file.lastModified() > tmp) { - tmp = file.lastModified(); - maxModifyTimeFile = file; - } - } + + File maxModifyTimeFile = Arrays.stream(files).filter(File::isFile).filter(File::exists).max(Comparator.comparingLong(File::lastModified)).orElse(null); if (maxModifyTimeFile == null) { return; } @@ -218,4 +217,19 @@ public class BackupTask { } } + private void dumpMysql() { + try { + String sqlScript = elePropertyConfig.getBackupMysqlScriptPath(); + String command = StrFormatter.format("bash {}", sqlScript); + Process exec = RuntimeUtil.exec(command); + int i = exec.waitFor(); + if (i != 0) { + log.warn("导出MySQL数据异常"); + } + } catch (Exception e) { + log.warn("导出MySQL数据异常,原因 {}", e.getMessage(), e); + } + + } + } diff --git a/electrmangnetic/src/main/resources/application.properties b/electrmangnetic/src/main/resources/application.properties index aeca81f..60f0f82 100644 --- a/electrmangnetic/src/main/resources/application.properties +++ b/electrmangnetic/src/main/resources/application.properties @@ -35,4 +35,5 @@ prj.folder.max.length=6 tmp.file.store.days=7 backup.remote.host=127.0.0.1 backup.remote.port=1111 -backup.mysql.path=/workspace/mysqlbak/test \ No newline at end of file +backup.mysql.path=/workspace/mysqlbak/test +backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh \ No newline at end of file