From 63645d248c765244488cd34dbc1bb6528ca6b7c7 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 05 九月 2023 09:58:13 +0800 Subject: [PATCH] 修复编译 --- version-control/service/backup.go | 304 +++++++++++++++++++++++++------------------------- 1 files changed, 152 insertions(+), 152 deletions(-) diff --git a/version-control/service/backup.go b/version-control/service/backup.go index c4bc786..b11e882 100644 --- a/version-control/service/backup.go +++ b/version-control/service/backup.go @@ -1,152 +1,152 @@ -package service - -import ( - "context" - "fmt" - "os" - "os/exec" - "path/filepath" - "time" - "vamicro/extend/util" - "vamicro/version-control/models" - - "basic.com/valib/logger.git" -) - -/* - 绯荤粺澶囦唤銆佸浠借繕鍘熴�佹寜璁剧疆鍛ㄦ湡鎬у浠� - 澶囦唤鐨勬暟鎹富瑕佸寘鎷瑂qlite鏁版嵁銆乧onfig浠ュ強exe(鎸夐渶瑕�) - 鎸夐挳鍙互瑙﹀彂绔嬪嵆澶囦唤 - 鍙傛暟: - 1.澶囦唤寮�鍏� - 2.澶囦唤鐩綍鏂囦欢澶�(/opt/vasystem/backup_auto) - 3.澶囦唤鍛ㄦ湡(姣�7澶╁浠戒竴娆�,澶囦唤鏃堕棿鏄闂�0鐐�) - 4.澶囦唤鏁版嵁淇濆瓨鏃堕棿 -*/ -func BakSchedule(ctx context.Context) { - // tk := time.NewTicker(time.Minute) - tk := time.Tick(24 * time.Hour) - for { - select { - case <-ctx.Done(): - return - case <-tk: - removeCheck() - backupCheck() - } - } -} - -//鑷姩娓呯悊澶т簬淇濆瓨鏃堕棿鐨勫浠芥暟鎹� -func removeCheck() { - var ab models.AutoBackupConf - i, e := ab.Select() - if e != nil || i <= 0 { - return - } - if ab.Dir == "" { - logger.Error("澶囦唤鐩綍鏈厤缃�") - return - } - - if ab.Period < 1 || ab.SaveDays < 1 { - logger.Error("鍛ㄦ湡鍜屼繚瀛樺ぉ鏁颁笉鍚堟硶") - return - } - - t := time.Now() - err := filepath.Walk(ab.Dir, func(src string, f os.FileInfo, err error) error { - if f.IsDir() { - nt, e := time.ParseInLocation("2006-01-02-15-04-05", f.Name(), time.Local) - if e != nil { - return e - } - - if int(t.Sub(nt).Hours()) > ab.SaveDays*24 { - os.RemoveAll(ab.Dir + "/" + f.Name()) - } - } - return nil - }) - if err != nil { - logger.Error(err) - } -} - -func backupCheck() { - //妫�鏌ュ綋鍓嶆椂闂� - t := time.Now() - if t.Hour() > 1 { - return - } - var ab models.AutoBackupConf - i, e := ab.Select() - if e != nil || i <= 0 { - return - } - if !ab.Enable { - logger.Info("鑷姩澶囦唤寮�鍏虫湭鎵撳紑") - return - } - if ab.Dir == "" { - logger.Error("澶囦唤鐩綍鏈厤缃�") - return - } - if ab.Period < 1 || ab.SaveDays < 1 { - logger.Error("鍛ㄦ湡鍜屼繚瀛樺ぉ鏁颁笉鍚堟硶") - return - } - - if !util.DirExists(ab.Dir) { - os.Mkdir(ab.Dir, os.ModePerm) - } - lbd, err := exec.Command(fmt.Sprintf("ls %s | sort -r|head -1", ab.Dir)).Output() - if err != nil { - logger.Error("get last auto backup day err:", err) - return - } - - sbd := string(lbd) - if sbd == "" { //鏈浠借繃锛屽垯鎵ц澶囦唤 - DoAutoBackup(&ab) - } else { - tl, _ := time.ParseInLocation("2006-01-02-15-04-05", sbd, time.Local) - if int(t.Sub(tl).Hours()) >= ab.Period*24 { - DoAutoBackup(&ab) - } - } -} - -func DoAutoBackup(ab *models.AutoBackupConf) error { - backDirName := time.Now().Format("2006-01-02-15-04-05") - dir := ab.Dir + "/" + backDirName - if !util.DirExists(dir) { - if err := os.Mkdir(dir, os.ModePerm); err != nil { - return err - } - } - //澶囦唤鏁版嵁搴撳拰閰嶇疆鏂囦欢 - _, err := util.CopyDirByCmd("/opt/vasystem/config", dir) - if err != nil { - return err - } - return nil -} -func DoBackupRecover(dir string) error { - //闃叉杩樺師澶辫触锛屽仛涓�涓繕鍘熺偣澶囦唤 - //鍏堝仠姝㈡墍鏈夎繘绋� - //杩樺師 - //閲嶅惎绯荤粺 - recoverBakDir := util.GetVamicroPath() + "/recover_backup" - if util.DirExists(recoverBakDir) { - os.RemoveAll(recoverBakDir) - } - os.Mkdir(recoverBakDir, os.ModePerm) - util.CopyDirByCmd("/opt/vasystem/config", recoverBakDir) - - _, err := exec.Command("/bin/sh", "-c", fmt.Sprintf(` - /opt/vasystem/procs/killAllProcs.sh && - cp -rf %s/* /opt/vasystem/config/ && - /opt/vasystem/daemon.sh`, dir)).Output() - return err -} +package service + +import ( + "context" + "fmt" + "os" + "os/exec" + "path/filepath" + "time" + "vamicro/extend/util" + "vamicro/version-control/models" + + "basic.com/valib/logger.git" +) + +/* + 绯荤粺澶囦唤銆佸浠借繕鍘熴�佹寜璁剧疆鍛ㄦ湡鎬у浠� + 澶囦唤鐨勬暟鎹富瑕佸寘鎷瑂qlite鏁版嵁銆乧onfig浠ュ強exe(鎸夐渶瑕�) + 鎸夐挳鍙互瑙﹀彂绔嬪嵆澶囦唤 + 鍙傛暟: + 1.澶囦唤寮�鍏� + 2.澶囦唤鐩綍鏂囦欢澶�(/opt/vasystem/backup_auto) + 3.澶囦唤鍛ㄦ湡(姣�7澶╁浠戒竴娆�,澶囦唤鏃堕棿鏄闂�0鐐�) + 4.澶囦唤鏁版嵁淇濆瓨鏃堕棿 +*/ +func BakSchedule(ctx context.Context) { + // tk := time.NewTicker(time.Minute) + tk := time.Tick(24 * time.Hour) + for { + select { + case <-ctx.Done(): + return + case <-tk: + removeCheck() + backupCheck() + } + } +} + +//鑷姩娓呯悊澶т簬淇濆瓨鏃堕棿鐨勫浠芥暟鎹� +func removeCheck() { + var ab models.AutoBackupConf + i, e := ab.Select() + if e != nil || i <= 0 { + return + } + if ab.Dir == "" { + logger.Error("澶囦唤鐩綍鏈厤缃�") + return + } + + if ab.Period < 1 || ab.SaveDays < 1 { + logger.Error("鍛ㄦ湡鍜屼繚瀛樺ぉ鏁颁笉鍚堟硶") + return + } + + t := time.Now() + err := filepath.Walk(ab.Dir, func(src string, f os.FileInfo, err error) error { + if f.IsDir() { + nt, e := time.ParseInLocation("2006-01-02-15-04-05", f.Name(), time.Local) + if e != nil { + return e + } + + if int(t.Sub(nt).Hours()) > ab.SaveDays*24 { + os.RemoveAll(ab.Dir + "/" + f.Name()) + } + } + return nil + }) + if err != nil { + logger.Error(err) + } +} + +func backupCheck() { + //妫�鏌ュ綋鍓嶆椂闂� + t := time.Now() + if t.Hour() > 1 { + return + } + var ab models.AutoBackupConf + i, e := ab.Select() + if e != nil || i <= 0 { + return + } + if !ab.Enable { + logger.Info("鑷姩澶囦唤寮�鍏虫湭鎵撳紑") + return + } + if ab.Dir == "" { + logger.Error("澶囦唤鐩綍鏈厤缃�") + return + } + if ab.Period < 1 || ab.SaveDays < 1 { + logger.Error("鍛ㄦ湡鍜屼繚瀛樺ぉ鏁颁笉鍚堟硶") + return + } + + if !util.DirExists(ab.Dir) { + os.Mkdir(ab.Dir, os.ModePerm) + } + lbd, err := exec.Command(fmt.Sprintf("ls %s | sort -r|head -1", ab.Dir)).Output() + if err != nil { + logger.Error("get last auto backup day err:", err) + return + } + + sbd := string(lbd) + if sbd == "" { //鏈浠借繃锛屽垯鎵ц澶囦唤 + DoAutoBackup(&ab) + } else { + tl, _ := time.ParseInLocation("2006-01-02-15-04-05", sbd, time.Local) + if int(t.Sub(tl).Hours()) >= ab.Period*24 { + DoAutoBackup(&ab) + } + } +} + +func DoAutoBackup(ab *models.AutoBackupConf) error { + backDirName := time.Now().Format("2006-01-02-15-04-05") + dir := ab.Dir + "/" + backDirName + if !util.DirExists(dir) { + if err := os.Mkdir(dir, os.ModePerm); err != nil { + return err + } + } + //澶囦唤鏁版嵁搴撳拰閰嶇疆鏂囦欢 + _, err := util.CopyDirByCmd("/opt/vasystem/config", dir) + if err != nil { + return err + } + return nil +} +func DoBackupRecover(dir string) error { + //闃叉杩樺師澶辫触锛屽仛涓�涓繕鍘熺偣澶囦唤 + //鍏堝仠姝㈡墍鏈夎繘绋� + //杩樺師 + //閲嶅惎绯荤粺 + recoverBakDir := util.GetVamicroPath() + "/recover_backup" + if util.DirExists(recoverBakDir) { + os.RemoveAll(recoverBakDir) + } + os.Mkdir(recoverBakDir, os.ModePerm) + util.CopyDirByCmd("/opt/vasystem/config", recoverBakDir) + + _, err := exec.Command("/bin/sh", "-c", fmt.Sprintf(` + /opt/vasystem/procs/killAllProcs.sh && + cp -rf %s/* /opt/vasystem/config/ && + /opt/vasystem/daemon.sh`, dir)).Output() + return err +} -- Gitblit v1.8.0