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