From 5d9c09f69e1c8bce81846738cd02a56dc257ccae Mon Sep 17 00:00:00 2001 From: ssongliu <73214554+ssongliu@users.noreply.github.com> Date: Thu, 9 May 2024 21:50:24 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=A7=A3=E5=86=B3=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=BA=93=E5=A4=87=E4=BB=BD=E9=94=99=E8=AF=AF=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20(#4941)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/utils/mysql/client/local.go | 9 ++++++++- backend/utils/mysql/client/remote.go | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/backend/utils/mysql/client/local.go b/backend/utils/mysql/client/local.go index 6d6c8fcdb..c02d644a6 100644 --- a/backend/utils/mysql/client/local.go +++ b/backend/utils/mysql/client/local.go @@ -1,6 +1,7 @@ package client import ( + "bytes" "compress/gzip" "context" "errors" @@ -230,11 +231,17 @@ func (r *Local) Backup(info BackupInfo) error { } global.LOG.Infof("start to %s | gzip > %s.gzip", dumpCmd, info.TargetDir+"/"+info.FileName) cmd := exec.Command("docker", "exec", r.ContainerName, dumpCmd, "-uroot", "-p"+r.Password, "--default-character-set="+info.Format, 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 } diff --git a/backend/utils/mysql/client/remote.go b/backend/utils/mysql/client/remote.go index 5d934cb6d..fe2a20d20 100644 --- a/backend/utils/mysql/client/remote.go +++ b/backend/utils/mysql/client/remote.go @@ -1,6 +1,7 @@ package client import ( + "bytes" "compress/gzip" "context" "database/sql" @@ -249,12 +250,17 @@ func (r *Remote) Backup(info BackupInfo) error { global.LOG.Debug(backupCmd) cmd := exec.Command("bash", "-c", backupCmd) + 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 }