实现备份可设置

This commit is contained in:
chenxudong 2025-11-06 09:56:12 +08:00
parent fedfc12e3e
commit df64dc8ebd
2 changed files with 13 additions and 3 deletions

View File

@ -61,12 +61,13 @@ public class BackupTask {
@Resource
private BackupHandler backupHandler;
@Scheduled(cron = "0 0 * * * ?")
@Scheduled(fixedDelayString = "#{${backup.interval.mins:720} * 1000 * 60}")
public void backup() {
if (!isRemotePortListening(elePropertyConfig.getRemoteHost(), elePropertyConfig.getRemotePort())) {
log.info("备份环境连接失败,未备份文件");
return;
}
int count = 0;
// 首先查看备份失败的文件
List<String> failBackFailFileIds = getFailBackFile();
for (String id : failBackFailFileIds) {
@ -86,6 +87,7 @@ public class BackupTask {
.set(FileBackupLog::getDuration, endTime - startTime)
.set(FileBackupLog::getFailInfoDetail, resLog.getFailInfoDetail())
.set(FileBackupLog::isBackupSuccess, resLog.getBackupSuccess()));
++count;
}
// 查找最大备份时间
Date fileMaxCreateTime = getFileMaxCreateTime();
@ -98,11 +100,18 @@ public class BackupTask {
.gt(EdFileInfo::getCreatedTime, fileMaxCreateTime));
for (EdFileInfo edFileInfo : edFileInfos) {
try {
backUpFile(edFileInfo);
long size = fileBackupLogMapper.selectCount(Wrappers.<FileBackupLog>lambdaQuery().eq(FileBackupLog::getFileId, edFileInfo.getId()));
if (size == 0) {
backUpFile(edFileInfo);
++count;
}
} catch (Exception e) {
log.warn("备份文件错误, {} ", e.getMessage(), e);
}
}
String info = StrFormatter.format("备份完成,此次成功备份 {} 个文件", count);
log.info(info);
}
private void backUpFile(EdFileInfo edFileInfo) {

View File

@ -64,4 +64,5 @@ backup.mysql.path=/workspace/mysqlbak/test
backup.mysql.script.path=/workspace/mysqlbak/back_dev.sh
file.enc.passwd=123456
login.enc.passwd=123456
login.enc.passwd=123456
backup.interval.mins=1440