From e5d3c1bb86f8fa0e29b7cb106750751959b79f1b Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Thu, 1 Feb 2024 18:35:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=AE=A1=E5=88=92=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E5=A4=87=E4=BB=BD=E5=A2=9E=E5=8A=A0=E9=9A=8F=E6=9C=BA=E5=90=8E?= =?UTF-8?q?=E7=BC=80=20(#3778)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/service/backup_app.go | 3 ++- backend/app/service/backup_mysql.go | 3 ++- backend/app/service/backup_postgresql.go | 3 ++- backend/app/service/backup_redis.go | 3 ++- backend/app/service/backup_website.go | 3 ++- backend/app/service/cronjob_backup.go | 16 +++++++++------- 6 files changed, 19 insertions(+), 12 deletions(-) diff --git a/backend/app/service/backup_app.go b/backend/app/service/backup_app.go index 1ba23a656..8718d9c28 100644 --- a/backend/app/service/backup_app.go +++ b/backend/app/service/backup_app.go @@ -16,6 +16,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/app/model" "github.com/1Panel-dev/1Panel/backend/constant" "github.com/1Panel-dev/1Panel/backend/global" + "github.com/1Panel-dev/1Panel/backend/utils/common" "github.com/1Panel-dev/1Panel/backend/utils/compose" "github.com/1Panel-dev/1Panel/backend/utils/files" "github.com/pkg/errors" @@ -38,7 +39,7 @@ func (u *BackupService) AppBackup(req dto.CommonBackup) error { itemDir := fmt.Sprintf("app/%s/%s", req.Name, req.DetailName) backupDir := path.Join(localDir, itemDir) - fileName := fmt.Sprintf("%s_%s.tar.gz", req.DetailName, timeNow) + fileName := fmt.Sprintf("%s_%s.tar.gz", req.DetailName, timeNow+common.RandStrAndNum(5)) if err := handleAppBackup(&install, backupDir, fileName); err != nil { return err } diff --git a/backend/app/service/backup_mysql.go b/backend/app/service/backup_mysql.go index 30285a0d7..8fb57aaad 100644 --- a/backend/app/service/backup_mysql.go +++ b/backend/app/service/backup_mysql.go @@ -13,6 +13,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/app/dto" "github.com/1Panel-dev/1Panel/backend/app/model" "github.com/1Panel-dev/1Panel/backend/global" + "github.com/1Panel-dev/1Panel/backend/utils/common" "github.com/1Panel-dev/1Panel/backend/utils/files" "github.com/1Panel-dev/1Panel/backend/utils/mysql/client" ) @@ -26,7 +27,7 @@ func (u *BackupService) MysqlBackup(req dto.CommonBackup) error { timeNow := time.Now().Format("20060102150405") itemDir := fmt.Sprintf("database/%s/%s/%s", req.Type, req.Name, req.DetailName) targetDir := path.Join(localDir, itemDir) - fileName := fmt.Sprintf("%s_%s.sql.gz", req.DetailName, timeNow) + fileName := fmt.Sprintf("%s_%s.sql.gz", req.DetailName, timeNow+common.RandStrAndNum(5)) if err := handleMysqlBackup(req.Name, req.DetailName, targetDir, fileName); err != nil { return err diff --git a/backend/app/service/backup_postgresql.go b/backend/app/service/backup_postgresql.go index 836b8a35f..65e6eeeea 100644 --- a/backend/app/service/backup_postgresql.go +++ b/backend/app/service/backup_postgresql.go @@ -9,6 +9,7 @@ import ( "time" "github.com/1Panel-dev/1Panel/backend/buserr" + "github.com/1Panel-dev/1Panel/backend/utils/common" pgclient "github.com/1Panel-dev/1Panel/backend/utils/postgresql/client" "github.com/1Panel-dev/1Panel/backend/app/dto" @@ -27,7 +28,7 @@ func (u *BackupService) PostgresqlBackup(req dto.CommonBackup) error { timeNow := time.Now().Format("20060102150405") itemDir := fmt.Sprintf("database/%s/%s/%s", req.Type, req.Name, req.DetailName) targetDir := path.Join(localDir, itemDir) - fileName := fmt.Sprintf("%s_%s.sql.gz", req.DetailName, timeNow) + fileName := fmt.Sprintf("%s_%s.sql.gz", req.DetailName, timeNow+common.RandStrAndNum(5)) if err := handlePostgresqlBackup(req.Name, req.DetailName, targetDir, fileName); err != nil { return err diff --git a/backend/app/service/backup_redis.go b/backend/app/service/backup_redis.go index 9783d685b..a4a945a45 100644 --- a/backend/app/service/backup_redis.go +++ b/backend/app/service/backup_redis.go @@ -14,6 +14,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/constant" "github.com/1Panel-dev/1Panel/backend/global" "github.com/1Panel-dev/1Panel/backend/utils/cmd" + "github.com/1Panel-dev/1Panel/backend/utils/common" "github.com/1Panel-dev/1Panel/backend/utils/compose" "github.com/1Panel-dev/1Panel/backend/utils/files" "github.com/pkg/errors" @@ -34,7 +35,7 @@ func (u *BackupService) RedisBackup() error { } global.LOG.Infof("appendonly in redis conf is %s", appendonly) - timeNow := time.Now().Format("20060102150405") + timeNow := time.Now().Format("20060102150405") + common.RandStrAndNum(5) fileName := fmt.Sprintf("%s.rdb", timeNow) if appendonly == "yes" { if strings.HasPrefix(redisInfo.Version, "6.") { diff --git a/backend/app/service/backup_website.go b/backend/app/service/backup_website.go index 7ec91e8a7..3b69192d7 100644 --- a/backend/app/service/backup_website.go +++ b/backend/app/service/backup_website.go @@ -15,6 +15,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/constant" "github.com/1Panel-dev/1Panel/backend/global" "github.com/1Panel-dev/1Panel/backend/utils/cmd" + "github.com/1Panel-dev/1Panel/backend/utils/common" "github.com/1Panel-dev/1Panel/backend/utils/compose" "github.com/1Panel-dev/1Panel/backend/utils/files" "github.com/pkg/errors" @@ -33,7 +34,7 @@ func (u *BackupService) WebsiteBackup(req dto.CommonBackup) error { timeNow := time.Now().Format("20060102150405") itemDir := fmt.Sprintf("website/%s", req.Name) backupDir := path.Join(localDir, itemDir) - fileName := fmt.Sprintf("%s_%s.tar.gz", website.PrimaryDomain, timeNow) + fileName := fmt.Sprintf("%s_%s.tar.gz", website.PrimaryDomain, timeNow+common.RandStrAndNum(5)) if err := handleWebsiteBackup(&website, backupDir, fileName); err != nil { return err } diff --git a/backend/app/service/cronjob_backup.go b/backend/app/service/cronjob_backup.go index a016bbb4f..95e845773 100644 --- a/backend/app/service/cronjob_backup.go +++ b/backend/app/service/cronjob_backup.go @@ -12,6 +12,7 @@ import ( "github.com/1Panel-dev/1Panel/backend/app/model" "github.com/1Panel-dev/1Panel/backend/constant" "github.com/1Panel-dev/1Panel/backend/global" + "github.com/1Panel-dev/1Panel/backend/utils/common" ) func (u *CronjobService) handleApp(cronjob model.Cronjob, startTime time.Time) error { @@ -39,7 +40,7 @@ func (u *CronjobService) handleApp(cronjob model.Cronjob, startTime time.Time) e record.DetailName = app.Name record.Source, record.BackupType = loadRecordPath(cronjob, accountMap) backupDir := path.Join(global.CONF.System.TmpDir, fmt.Sprintf("app/%s/%s", app.App.Key, app.Name)) - record.FileName = fmt.Sprintf("app_%s_%s.tar.gz", app.Name, startTime.Format("20060102150405")) + record.FileName = fmt.Sprintf("app_%s_%s.tar.gz", app.Name, startTime.Format("20060102150405")+common.RandStrAndNum(5)) if err := handleAppBackup(&app, backupDir, record.FileName); err != nil { return err } @@ -72,7 +73,7 @@ func (u *CronjobService) handleWebsite(cronjob model.Cronjob, startTime time.Tim record.DetailName = web.Alias record.Source, record.BackupType = loadRecordPath(cronjob, accountMap) backupDir := path.Join(global.CONF.System.TmpDir, fmt.Sprintf("website/%s", web.PrimaryDomain)) - record.FileName = fmt.Sprintf("website_%s_%s.tar.gz", web.PrimaryDomain, startTime.Format("20060102150405")) + record.FileName = fmt.Sprintf("website_%s_%s.tar.gz", web.PrimaryDomain, startTime.Format("20060102150405")+common.RandStrAndNum(5)) if err := handleWebsiteBackup(&web, backupDir, record.FileName); err != nil { return err } @@ -106,7 +107,7 @@ func (u *CronjobService) handleDatabase(cronjob model.Cronjob, startTime time.Ti record.Source, record.BackupType = loadRecordPath(cronjob, accountMap) backupDir := path.Join(global.CONF.System.TmpDir, 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("20060102150405")) + record.FileName = fmt.Sprintf("db_%s_%s.sql.gz", dbInfo.Name, startTime.Format("20060102150405")+common.RandStrAndNum(5)) if cronjob.DBType == "mysql" || cronjob.DBType == "mariadb" { if err := handleMysqlBackup(dbInfo.Database, dbInfo.Name, backupDir, record.FileName); err != nil { return err @@ -135,7 +136,7 @@ func (u *CronjobService) handleDirectory(cronjob model.Cronjob, startTime time.T if err != nil { return err } - fileName := fmt.Sprintf("directory%s_%s.tar.gz", strings.ReplaceAll(cronjob.SourceDir, "/", "_"), startTime.Format("20060102150405")) + fileName := fmt.Sprintf("directory%s_%s.tar.gz", strings.ReplaceAll(cronjob.SourceDir, "/", "_"), startTime.Format("20060102150405")+common.RandStrAndNum(5)) backupDir := path.Join(global.CONF.System.TmpDir, fmt.Sprintf("%s/%s", cronjob.Type, cronjob.Name)) if err := handleTar(cronjob.SourceDir, backupDir, fileName, cronjob.ExclusionRules); err != nil { return err @@ -165,8 +166,9 @@ func (u *CronjobService) handleSystemLog(cronjob model.Cronjob, startTime time.T if err != nil { return err } - fileName := fmt.Sprintf("system_log_%s.tar.gz", startTime.Format("20060102150405")) - backupDir := path.Join(global.CONF.System.TmpDir, "log", startTime.Format("20060102150405")) + nameItem := startTime.Format("20060102150405") + common.RandStrAndNum(5) + fileName := fmt.Sprintf("system_log_%s.tar.gz", nameItem) + backupDir := path.Join(global.CONF.System.TmpDir, "log", nameItem) if err := handleBackupLogs(backupDir, fileName); err != nil { return err } @@ -208,7 +210,7 @@ func (u *CronjobService) handleSnapshot(cronjob model.Cronjob, startTime time.Ti From: record.BackupType, DefaultDownload: cronjob.DefaultDownload, } - name, err := NewISnapshotService().HandleSnapshot(true, logPath, req, startTime.Format("20060102150405")) + name, err := NewISnapshotService().HandleSnapshot(true, logPath, req, startTime.Format("20060102150405")+common.RandStrAndNum(5)) if err != nil { return err }