前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MeritMS—利用beego实现数据库自动备份

MeritMS—利用beego实现数据库自动备份

作者头像
hotqin888
发布2018-09-11 15:01:54
6970
发布2018-09-11 15:01:54
举报
文章被收录于专栏:hotqin888的专栏hotqin888的专栏

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://cloud.tencent.com/developer/article/1334480

代码语言:txt
复制
              一个系统的数据库是要每天进行备份的。有些是另外想办法,但利用beego的优势,在系统中自己做一个也是很简单的。思路是,meritms将数据库文件发送个某个ip地址的路由,比如发给ecms,然后ecms这个路由接受数据库文件,把它存到ecms的某个盘中。

 第一步,merit中提交这个文件给ecms,后者的路由是http://127.0.0.1:80/postdata

代码语言:javascript
复制
func Postdata() {
    b := httplib.Post("http://127.0.0.1:80/postdata")
    b.Param("username", "astaxie")
    b.Param("password", "123456")
    b.PostFile("uploadfile1", "d:\\1.txt")
 // b.PostFile("uploadfile2", "httplib.txt")PostFile 第一个参数是 form 表单的字段名,第二个是需要发送的文件名或者文件路径
    str, err := b.String()
 if err != nil {
        beego.Error(str)
    }
}

第二步,ecms接受这个文件

代码语言:javascript
复制
func (c *MainController) Postdata() {
    f, h, err := c.GetFile("uploadfile1")
    beego.Info(h) //这里 filename是路径,所以不能以filename作为保存的文件名。坑!!
    defer f.Close()
 if err != nil {
        beego.Error(err)
    } else {
        c.SaveToFile("uploadfile1", "./static/upload/1.txt") // 保存位置在 static/upload, 没有文件夹要先创建
        c.Ctx.WriteString("ok")
    }
}

 第三步,定时执行,还是需要再merit中。22:16分开始执行备份任务。 

代码语言:javascript
复制
    time1 := "0 16 22 * * *"
    tk1 := toolbox.NewTask("tk1", time1, func() error { controllers.Postdata(); return nil }) //func() error { fmt.Println("tk1"); return nil }
    toolbox.AddTask("tk1", tk1)
    toolbox.StartTask()
    defer toolbox.StopTask()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年06月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档