Skip to content

Commit 26d3db1

Browse files
committed
fix: Fix PostgreSQL backup failure with $ character
1 parent b397363 commit 26d3db1

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

agent/utils/postgresql/client/remote.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ func (r *Remote) Backup(info BackupInfo) error {
132132
}
133133
fileNameItem := info.TargetDir + "/" + strings.TrimSuffix(info.FileName, ".gz")
134134
backupCommand := exec.Command("bash", "-c",
135-
fmt.Sprintf("docker run --rm --net=host -i %s /bin/bash -c 'PGPASSWORD=\"%s\" pg_dump -h %s -p %d --no-owner -Fc -U %s %s' > %s",
135+
fmt.Sprintf("docker run --rm --net=host -i %s /bin/bash -c 'PGPASSWORD='\\''%s'\\'' pg_dump -h %s -p %d --no-owner -Fc -U %s %s' > %s",
136136
imageTag, r.Password, r.Address, r.Port, r.User, info.Name, fileNameItem))
137137
_ = backupCommand.Run()
138138
b := make([]byte, 5)
@@ -176,7 +176,7 @@ func (r *Remote) Recover(info RecoverInfo) error {
176176
}()
177177
}
178178
recoverCommand := exec.Command("bash", "-c",
179-
fmt.Sprintf("docker run --rm --net=host -i %s /bin/bash -c 'PGPASSWORD=\"%s\" pg_restore -h %s -p %d --verbose --clean --no-privileges --no-owner -Fc -c --if-exists --no-owner -U %s -d %s --role=%s' < %s",
179+
fmt.Sprintf("docker run --rm --net=host -i %s /bin/bash -c 'PGPASSWORD='\\''%s'\\'' pg_restore -h %s -p %d --verbose --clean --no-privileges --no-owner -Fc -c --if-exists --no-owner -U %s -d %s --role=%s' < %s",
180180
imageTag, r.Password, r.Address, r.Port, r.User, info.Name, info.Username, fileName))
181181
pipe, _ := recoverCommand.StdoutPipe()
182182
stderrPipe, _ := recoverCommand.StderrPipe()

0 commit comments

Comments
 (0)