From 0b1f7e932235fd95ba5e33dde7beeccd7d2e1196 Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Wed, 16 Jul 2025 18:15:52 +0800 Subject: [PATCH] fix: Change backup temporary file directory (#9533) Refs #9428 --- agent/app/service/cronjob_backup.go | 10 +++++----- agent/app/service/cronjob_helper.go | 2 +- agent/app/service/snapshot_create.go | 7 ++++--- agent/app/service/snapshot_recover.go | 2 +- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/agent/app/service/cronjob_backup.go b/agent/app/service/cronjob_backup.go index e478426e9..3876dc371 100644 --- a/agent/app/service/cronjob_backup.go +++ b/agent/app/service/cronjob_backup.go @@ -57,7 +57,7 @@ func (u *CronjobService) handleApp(cronjob model.Cronjob, startTime time.Time, t record.Name = app.App.Key record.DetailName = app.Name record.DownloadAccountID, record.SourceAccountIDs = cronjob.DownloadAccountID, cronjob.SourceAccountIDs - backupDir := path.Join(global.Dir.TmpDir, fmt.Sprintf("app/%s/%s", app.App.Key, app.Name)) + backupDir := path.Join(global.Dir.LocalBackupDir, fmt.Sprintf("app/%s/%s", app.App.Key, app.Name)) record.FileName = fmt.Sprintf("app_%s_%s.tar.gz", app.Name, startTime.Format(constant.DateTimeSlimLayout)+common.RandStrAndNum(5)) if err := doAppBackup(&app, task, backupDir, record.FileName, cronjob.ExclusionRules, cronjob.Secret); err != nil { if retry < int(cronjob.RetryTimes) || !cronjob.IgnoreErr { @@ -108,7 +108,7 @@ func (u *CronjobService) handleWebsite(cronjob model.Cronjob, startTime time.Tim record.Name = web.Alias record.DetailName = web.Alias record.DownloadAccountID, record.SourceAccountIDs = cronjob.DownloadAccountID, cronjob.SourceAccountIDs - backupDir := path.Join(global.Dir.TmpDir, fmt.Sprintf("website/%s", web.Alias)) + backupDir := path.Join(global.Dir.LocalBackupDir, fmt.Sprintf("website/%s", web.Alias)) record.FileName = fmt.Sprintf("website_%s_%s.tar.gz", web.Alias, startTime.Format(constant.DateTimeSlimLayout)+common.RandStrAndNum(5)) if err := doWebsiteBackup(&web, taskItem, backupDir, record.FileName, cronjob.ExclusionRules, cronjob.Secret); err != nil { @@ -163,7 +163,7 @@ func (u *CronjobService) handleDatabase(cronjob model.Cronjob, startTime time.Ti record.DetailName = dbInfo.Name record.DownloadAccountID, record.SourceAccountIDs = cronjob.DownloadAccountID, cronjob.SourceAccountIDs - backupDir := path.Join(global.Dir.TmpDir, fmt.Sprintf("database/%s/%s/%s", dbInfo.DBType, record.Name, dbInfo.Name)) + backupDir := path.Join(global.Dir.LocalBackupDir, fmt.Sprintf("database/%s/%s/%s", dbInfo.DBType, record.Name, dbInfo.Name)) record.FileName = fmt.Sprintf("db_%s_%s.sql.gz", dbInfo.Name, startTime.Format(constant.DateTimeSlimLayout)+common.RandStrAndNum(5)) if cronjob.DBType == "mysql" || cronjob.DBType == "mariadb" || cronjob.DBType == "mysql-cluster" { if err := doMysqlBackup(dbInfo, backupDir, record.FileName); err != nil { @@ -215,7 +215,7 @@ func (u *CronjobService) handleDirectory(cronjob model.Cronjob, startTime time.T return err } fileName := fmt.Sprintf("%s.tar.gz", startTime.Format(constant.DateTimeSlimLayout)+common.RandStrAndNum(5)) - backupDir := path.Join(global.Dir.TmpDir, fmt.Sprintf("%s/%s", cronjob.Type, cronjob.Name)) + backupDir := path.Join(global.Dir.LocalBackupDir, fmt.Sprintf("%s/%s", cronjob.Type, cronjob.Name)) fileOp := files.NewFileOp() if cronjob.IsDir { @@ -261,7 +261,7 @@ func (u *CronjobService) handleSystemLog(cronjob model.Cronjob, startTime time.T } nameItem := startTime.Format(constant.DateTimeSlimLayout) + common.RandStrAndNum(5) fileName := fmt.Sprintf("system_log_%s.tar.gz", nameItem) - backupDir := path.Join(global.Dir.TmpDir, "log", nameItem) + backupDir := path.Join(global.Dir.LocalBackupDir, "log", nameItem) if err := handleBackupLogs(taskItem, backupDir, fileName, cronjob.Secret); err != nil { return err } diff --git a/agent/app/service/cronjob_helper.go b/agent/app/service/cronjob_helper.go index b1d547c37..c44042494 100644 --- a/agent/app/service/cronjob_helper.go +++ b/agent/app/service/cronjob_helper.go @@ -268,7 +268,7 @@ func (u *CronjobService) uploadCronjobBackFile(cronjob model.Cronjob, task *task }() var errItem error accounts := strings.Split(cronjob.SourceAccountIDs, ",") - cloudSrc := strings.TrimPrefix(file, global.Dir.TmpDir+"/") + cloudSrc := strings.TrimPrefix(file, global.Dir.LocalBackupDir+"/") for _, account := range accounts { if len(account) != 0 { task.LogStart(i18n.GetMsgWithMap("UploadFile", map[string]interface{}{ diff --git a/agent/app/service/snapshot_create.go b/agent/app/service/snapshot_create.go index ae3f7d313..c3de8d633 100644 --- a/agent/app/service/snapshot_create.go +++ b/agent/app/service/snapshot_create.go @@ -123,7 +123,7 @@ func (u *SnapshotService) SnapshotReCreate(id uint) error { } func handleSnapshot(req dto.SnapshotCreate, taskItem *task.Task, jobID, retry, timeout uint) error { - rootDir := path.Join(global.Dir.TmpDir, "system", req.Name) + rootDir := path.Join(global.Dir.LocalBackupDir, "tmp/system", req.Name) openrestyDir, _ := settingRepo.GetValueByKey("WEBSITE_DIR") itemHelper := snapHelper{SnapID: req.ID, Task: *taskItem, FileOp: files.NewFileOp(), Ctx: context.Background(), OpenrestyDir: openrestyDir} baseDir := path.Join(rootDir, "base") @@ -406,6 +406,7 @@ func snapBackupData(snap snapHelper, req dto.SnapshotCreate, targetDir string) e excludes := loadBackupExcludes(snap, req.BackupData) excludes = append(excludes, req.IgnoreFiles...) excludes = append(excludes, "./system_snapshot") + excludes = append(excludes, "./tmp") for _, item := range req.AppData { for _, itemApp := range item.Children { if itemApp.Label == "appBackup" { @@ -517,7 +518,7 @@ func snapCompress(snap snapHelper, rootDir string, secret string) error { snap.Task.Log("---------------------- 7 / 8 ----------------------") snap.Task.LogStart(i18n.GetMsgByKey("SnapCompress")) - tmpDir := path.Join(global.Dir.TmpDir, "system") + tmpDir := path.Join(global.Dir.LocalBackupDir, "tmp/system") fileName := fmt.Sprintf("%s.tar.gz", path.Base(rootDir)) err := snap.FileOp.TarGzCompressPro(true, rootDir, path.Join(tmpDir, fileName), secret, "") snap.Task.LogWithStatus(i18n.GetMsgByKey("SnapCompressFile"), err) @@ -541,7 +542,7 @@ func snapUpload(snap snapHelper, accounts string, file string) error { snap.Task.Log("---------------------- 8 / 8 ----------------------") snap.Task.LogStart(i18n.GetMsgByKey("SnapUpload")) - source := path.Join(global.Dir.TmpDir, "system", path.Base(file)) + source := path.Join(global.Dir.LocalBackupDir, "tmp/system", path.Base(file)) accountMap, err := NewBackupClientMap(strings.Split(accounts, ",")) snap.Task.LogWithStatus(i18n.GetMsgByKey("SnapLoadBackup"), err) if err != nil { diff --git a/agent/app/service/snapshot_recover.go b/agent/app/service/snapshot_recover.go index f85d7cfea..112c41242 100644 --- a/agent/app/service/snapshot_recover.go +++ b/agent/app/service/snapshot_recover.go @@ -78,7 +78,7 @@ func (u *SnapshotService) SnapshotRecover(req dto.SnapshotRecover) error { global.LOG.Errorf("new task for create snapshot failed, err: %v", err) return err } - rootDir := path.Join(global.Dir.TmpDir, "system", snap.Name) + rootDir := path.Join(global.Dir.LocalBackupDir, "tmp/system", snap.Name) if _, err := os.Stat(rootDir); err != nil && os.IsNotExist(err) { _ = os.MkdirAll(rootDir, os.ModePerm) }