diff --git a/etcdctl/command/backup_command.go b/etcdctl/command/backup_command.go index 4245d957c..e0a926a7b 100644 --- a/etcdctl/command/backup_command.go +++ b/etcdctl/command/backup_command.go @@ -19,6 +19,7 @@ package command import ( "log" "math/rand" + "os" "path" "time" @@ -49,6 +50,9 @@ func handleBackup(c *cli.Context) { srcWAL := path.Join(c.String("data-dir"), "wal") destWAL := path.Join(c.String("backup-dir"), "wal") + if err := os.MkdirAll(destSnap, 0700); err != nil { + log.Fatalf("failed creating backup snapshot dir %v: %v", destSnap, err) + } ss := snap.New(srcSnap) snapshot, err := ss.Load() if err != nil && err != snap.ErrNoSnapshot { @@ -58,7 +62,9 @@ func handleBackup(c *cli.Context) { if snapshot != nil { index = snapshot.Index newss := snap.New(destSnap) - newss.SaveSnap(*snapshot) + if err := newss.SaveSnap(*snapshot); err != nil { + log.Fatal(err) + } } w, err := wal.OpenAtIndex(srcWAL, index)