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 }