Skip to content

Commit 6fde45c

Browse files
authored
Merge pull request #33 from even0306/dev
1.2.1
2 parents b7ed7c3 + edf9438 commit 6fde45c

File tree

15 files changed

+545
-236
lines changed

15 files changed

+545
-236
lines changed

.github/build/friendly-filenames.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
{
2+
"linux-amd64": { "friendlyName": "linux-amd64" },
3+
"linux-arm64": { "friendlyName": "linux-arm64" }
4+
}

.github/workflows/release.yml

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
name: Build and Release
2+
3+
on:
4+
workflow_dispatch:
5+
release:
6+
types: [published]
7+
push:
8+
branches:
9+
- main
10+
paths:
11+
- "**/*.go"
12+
- "go.mod"
13+
- "go.sum"
14+
- ".github/workflows/*.yml"
15+
pull_request:
16+
types: [opened, synchronize, reopened]
17+
paths:
18+
- "**/*.go"
19+
- "go.mod"
20+
- "go.sum"
21+
- ".github/workflows/*.yml"
22+
jobs:
23+
build:
24+
permissions:
25+
contents: write
26+
strategy:
27+
matrix:
28+
# Include amd64 on all platforms.
29+
goos: [linux]
30+
goarch: [amd64, arm64]
31+
include:
32+
# BEGIN Linux ARM64
33+
- goos: linux
34+
goarch: arm64
35+
# END Linux ARM64
36+
# BEGIN Linux AMD64
37+
- goos: linux
38+
goarch: amd64
39+
# END Linux AMD64
40+
fail-fast: false
41+
42+
runs-on: ubuntu-latest
43+
env:
44+
GOOS: ${{ matrix.goos }}
45+
GOARCH: ${{ matrix.goarch }}
46+
GOARM: ${{ matrix.goarm }}
47+
CGO_ENABLED: 0
48+
steps:
49+
- name: Checkout codebase
50+
uses: actions/checkout@v4
51+
52+
- name: Show workflow information
53+
run: |
54+
export _NAME=$(jq ".[\"$GOOS-$GOARCH$GOARM$GOMIPS\"].friendlyName" -r < .github/build/friendly-filenames.json)
55+
echo "GOOS: $GOOS, GOARCH: $GOARCH, GOARM: $GOARM, GOMIPS: $GOMIPS, RELEASE_NAME: $_NAME"
56+
echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV
57+
- name: Set up Go
58+
uses: actions/setup-go@v5
59+
with:
60+
go-version-file: go.mod
61+
check-latest: true
62+
63+
- name: Get project dependencies
64+
run: go mod download
65+
66+
- name: Build db_backup_go
67+
run: |
68+
go build
69+
70+
- name: Get Version Number
71+
run: |
72+
versionNum=$(cat main.go | grep "version :=" | awk -F "\"" '{print $2}')
73+
echo "VERSION=$versionNum" >> $GITHUB_ENV
74+
75+
- name: Change the name
76+
run: |
77+
mv db_backup_go db_backup_go_${{ env.ASSET_NAME }}
78+
79+
- name: Upload binaries to release
80+
uses: svenstaro/upload-release-action@v2
81+
with:
82+
repo_token: ${{ secrets.GITHUB_TOKEN }}
83+
file: ./db_backup_go_${{ env.ASSET_NAME }}*
84+
tag: ${{ env.VERSION }}
85+
release_name: "db_backup_go"
86+
file_glob: true

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,4 @@
2323
|mariadb|10.0+|&#9745;
2424
|postgresql|14+|&#9745;
2525

26-
**注意:此软件不实现数据备份的主体功能,备份依赖于 mysqldump 和 pg_dump。如这些工具本身使用存在报错,那此软件也会报错**
26+
**注意:此软件不实现数据备份的主体功能,备份依赖于 mysqldump 8 和 pg_dump。如这些工具本身使用存在报错,那此软件也会报错**

config/config.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import (
44
"db_backup_go/logging"
55
"encoding/json"
66
"fmt"
7-
"io/ioutil"
7+
"os"
88
"reflect"
99
"strings"
1010
)
@@ -68,7 +68,7 @@ func NewConfig(f string) *ConfigFile {
6868
// 读取配置文件,返回error错误信息
6969
func (c *ConfigFile) Read() error {
7070
//读取配置文件
71-
bf, err := ioutil.ReadFile(c.configFile)
71+
bf, err := os.ReadFile(c.configFile)
7272
if err != nil {
7373
return fmt.Errorf("读取配置文件失败:%w", err)
7474
}

controller/controller.go

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,15 @@ type Controller interface {
1515
}
1616

1717
type fileInfo struct {
18-
confFile string
19-
dbsFile string
20-
fileNameList []string
18+
confFile string
19+
dbsFile string
2120
}
2221

2322
// 初始化控制器,传入配置文件和数据库列表文件,返回 *fileInfo 结构体实例
2423
func NewController(conf string, dbs string) *fileInfo {
2524
return &fileInfo{
26-
confFile: conf,
27-
dbsFile: dbs,
28-
fileNameList: []string{},
25+
confFile: conf,
26+
dbsFile: dbs,
2927
}
3028
}
3129

@@ -51,30 +49,27 @@ func (fi fileInfo) Controller() error {
5149
return err
5250
}
5351

52+
var wg sync.WaitGroup
5453
//开始循环备份每个数据库
5554
var responseChannel = make(chan string)
56-
go func(fl *[]string) {
57-
for v := range responseChannel {
58-
*fl = append(*fl, v)
59-
logging.Logger.Printf("%v备份完成", v)
55+
go func() {
56+
for {
57+
name := <-responseChannel
58+
logging.Logger.Printf("%v备份完成", name)
59+
wg.Done()
6060
}
61-
}(&fi.fileNameList)
61+
}()
6262

63-
var wg sync.WaitGroup
64-
limiter := make(chan bool, 4)
6563
bk := run.NewBackuper(conf)
6664
for _, v := range *preDBS {
6765
logging.Logger.Printf("%v备份开始", v)
6866
wg.Add(1)
69-
limiter <- true
7067
go func(db string) {
71-
fileName, err := bk.Run(&db)
68+
fileName, err := bk.Run(db)
7269
if err != nil {
7370
logging.Logger.Panicf("%v备份失败:%v", db, err)
7471
}
75-
defer wg.Done()
7672
responseChannel <- fileName
77-
<-limiter
7873
}(v)
7974
}
8075
wg.Wait()

go.mod

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
11
module db_backup_go
22

3-
go 1.21.4
3+
go 1.22.1
44

55
require github.com/pkg/sftp v1.13.6
66

77
require (
8-
github.com/davecgh/go-spew v1.1.1 // indirect
8+
filippo.io/edwards25519 v1.1.0 // indirect
99
github.com/kr/fs v0.1.0 // indirect
1010
)
1111

1212
require (
13-
golang.org/x/crypto v0.16.0
14-
golang.org/x/sys v0.15.0 // indirect
13+
github.com/go-sql-driver/mysql v1.8.0
14+
github.com/lib/pq v1.10.9
15+
golang.org/x/crypto v0.21.0
16+
golang.org/x/sys v0.18.0 // indirect
1517
)

go.sum

Lines changed: 12 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,58 @@
1+
filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA=
2+
filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4=
13
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
24
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
35
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6+
github.com/go-sql-driver/mysql v1.8.0 h1:UtktXaU2Nb64z/pLiGIxY4431SJ4/dR5cjMmlVHgnT4=
7+
github.com/go-sql-driver/mysql v1.8.0/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg=
48
github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8=
59
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
6-
github.com/pkg/sftp v1.13.5 h1:a3RLUqkyjYRtBTZJZ1VRrKbN3zhuPLlUc3sphVz81go=
7-
github.com/pkg/sftp v1.13.5/go.mod h1:wHDZ0IZX6JcBYRK1TH9bcVq8G7TLpVHYIGJRFnmPfxg=
10+
github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw=
11+
github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
812
github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo=
913
github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk=
1014
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1115
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
1216
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
1317
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
14-
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
15-
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1618
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
1719
github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=
1820
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
1921
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
2022
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
2123
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
22-
golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
2324
golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw=
24-
golang.org/x/crypto v0.9.0 h1:LF6fAI+IutBocDJ2OT0Q1g8plpYljMZ4+lty+dsqw3g=
25-
golang.org/x/crypto v0.9.0/go.mod h1:yrmDGqONDYtNj3tH8X9dzUun2m2lzPa9ngI6/RUPGR0=
26-
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
27-
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
25+
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
26+
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
2827
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
2928
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
3029
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
31-
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
3230
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
3331
golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco=
3432
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3533
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
3634
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
3735
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
38-
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3936
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
40-
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4137
golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4238
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
4339
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
44-
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
45-
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
46-
golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc=
47-
golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
40+
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
41+
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
4842
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
4943
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
5044
golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
51-
golang.org/x/term v0.8.0 h1:n5xxQn2i3PC0yLAbjTpNT85q/Kgzcr2gIoX9OrJUols=
52-
golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4=
45+
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
46+
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
5347
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
5448
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
55-
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
5649
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
5750
golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8=
5851
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
5952
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
6053
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
6154
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
6255
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
63-
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
6456
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
6557
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
6658
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ var f embed.FS
1616

1717
// 程序主入口
1818
func main() {
19-
version := "1.2.0"
19+
version := "1.2.1"
2020
printVersion := flag.Bool("version", false, "[--version]")
2121
flag.Parse()
2222
if *printVersion {

modules/clear/old.backup.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,12 +68,12 @@ func (bf *backupFile) ClearLocal(dict string) error {
6868
}
6969

7070
//检查是否还存在指定份数的备份
71-
fsDict, err := os.ReadDir(dict)
71+
fsDict, err := os.ReadDir(dict + v)
7272
if err != nil {
7373
return fmt.Errorf("读取目录失败:%w", err)
7474
}
7575
if len(fsDict) < bf.saveDay {
76-
logging.Logger.Printf("%v备份不足%v份,请检查", v, bf.saveDay)
76+
logging.Logger.Printf("%v备份数:%v,不足%v份,请检查", v, len(fsDict), bf.saveDay)
7777
}
7878
}
7979
return nil
@@ -130,7 +130,7 @@ func (bf *backupFile) ClearRemote(dict string) error {
130130
return fmt.Errorf("读取远程目录失败:%w", err)
131131
}
132132
if len(fileList) < bf.saveDay {
133-
logging.Logger.Printf("%v备份不足%v份,请检查", v.Name(), bf.saveDay)
133+
logging.Logger.Printf("%v备份数:%v,不足%v份,请检查", v.Name(), len(fsDict), bf.saveDay)
134134
}
135135
}
136136

modules/run/backup.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,13 @@ func NewBackuper(conf *config.ConfigFile) *backupInfo {
3030
}
3131

3232
// 循环备份每个数据库,返回库名或err
33-
func (b *backupInfo) Run(db *string) (string, error) {
33+
func (b *backupInfo) Run(db string) (string, error) {
3434
b.date = time.Now().Format("2006-01-02")
35-
fileName := *db + "_" + b.conf.DB_LABEL + "_" + b.date + ".sql.gz"
35+
fileName := db + "_" + b.conf.DB_LABEL + "_" + b.date + ".sql.gz"
3636

3737
//根据数据库类型选择相应的备份工具
3838
dbi := shell.NewSelecter(b.conf.DATABASETYPE, b.conf.MYSQL_EXEC_PATH, b.conf.DB_Version, b.conf.DB_HOST, b.conf.DB_PORT, b.conf.DB_USER, b.conf.DB_PASSWORD)
39-
err := shell.BackupSelecter(dbi, db, b.conf.BACKUP_SAVE_PATH, &fileName, b.conf.SINGLE_TRANSACTION)
39+
err := shell.BackupSelecter(dbi, db, b.conf.BACKUP_SAVE_PATH, fileName, b.conf.SINGLE_TRANSACTION)
4040
if err != nil {
4141
return "", err
4242
}
@@ -58,11 +58,11 @@ func (b *backupInfo) Run(db *string) (string, error) {
5858
defer sftpClient.Close()
5959

6060
up := send.NewSftpOperater(sftpClient)
61-
err = up.Upload(b.conf.BACKUP_SAVE_PATH+"/"+*db+"/"+fileName, b.conf.REMOTE_PATH+"/"+*db, fileName)
61+
err = up.Upload(b.conf.BACKUP_SAVE_PATH+"/"+db+"/"+fileName, b.conf.REMOTE_PATH+"/"+db, fileName)
6262
if err != nil {
6363
return "", err
6464
}
6565
}
6666

67-
return *db, nil
67+
return db, nil
6868
}

0 commit comments

Comments
 (0)