fix: 解决压缩备份恢复失败的问题 (#5322)

This commit is contained in:
ssongliu 2024-06-06 16:03:39 +08:00 committed by GitHub
parent 60df7786d8
commit ac384628c9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
5 changed files with 12 additions and 4 deletions

View File

@ -113,7 +113,7 @@ func handleWebsiteRecover(website *model.Website, recoverFile string, isRollback
defer func() {
if !isOk {
global.LOG.Info("recover failed, start to rollback now")
if err := handleWebsiteRecover(website, rollbackFile, true, secret); err != nil {
if err := handleWebsiteRecover(website, rollbackFile, true, ""); err != nil {
global.LOG.Errorf("rollback website %s from %s failed, err: %v", website.Alias, rollbackFile, err)
return
}

View File

@ -191,7 +191,7 @@ func handleUnTar(sourceFile, targetDir string, secret string) error {
extraCmd := "openssl enc -d -aes-256-cbc -k " + secret + " -in " + sourceFile + " | "
commands = fmt.Sprintf("%s tar -zxvf - -C %s", extraCmd, targetDir+" > /dev/null 2>&1")
} else {
commands = fmt.Sprintf("tar -zxvf %s %s", sourceFile+" -C ", targetDir+" > /dev/null 2>&1")
commands = fmt.Sprintf("tar zxvfC %s %s", sourceFile, targetDir)
}
if len(secret) != 0 {
global.LOG.Debug(strings.ReplaceAll(commands, fmt.Sprintf(" %s ", secret), "******"))

View File

@ -396,7 +396,7 @@ func (u *SnapshotService) handleUnTar(sourceDir, targetDir string, secret string
extraCmd := "openssl enc -d -aes-256-cbc -k " + secret + " -in " + sourceDir + " | "
commands = fmt.Sprintf("%s tar -zxvf - -C %s", extraCmd, targetDir+" > /dev/null 2>&1")
} else {
commands = fmt.Sprintf("tar -zxvf %s %s", sourceDir+" -C ", targetDir+" > /dev/null 2>&1")
commands = fmt.Sprintf("tar zxvfC %s %s", sourceDir, targetDir)
}
if len(secret) != 0 {
global.LOG.Debug(strings.ReplaceAll(commands, fmt.Sprintf(" %s ", secret), "******"))

View File

@ -1,6 +1,7 @@
package client
import (
"bytes"
"compress/gzip"
"context"
"errors"
@ -136,11 +137,17 @@ func (r *Local) Backup(info BackupInfo) error {
defer outfile.Close()
global.LOG.Infof("start to pg_dump | gzip > %s.gzip", info.TargetDir+"/"+info.FileName)
cmd := exec.Command("docker", "exec", r.ContainerName, "pg_dump", "-F", "c", "-U", r.Username, "-d", info.Name)
var stderr bytes.Buffer
cmd.Stderr = &stderr
gzipCmd := exec.Command("gzip", "-cf")
gzipCmd.Stdin, _ = cmd.StdoutPipe()
gzipCmd.Stdout = outfile
_ = gzipCmd.Start()
_ = cmd.Run()
if err := cmd.Run(); err != nil {
return fmt.Errorf("handle backup database failed, err: %v", stderr.String())
}
_ = gzipCmd.Wait()
return nil
}

View File

@ -382,6 +382,7 @@ const search = async () => {
pageSize: paginationConfig.pageSize,
};
const res = await searchSnapshotPage(params);
cleanData.value = false;
data.value = res.data.items || [];
paginationConfig.total = res.data.total;
};