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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hotqin888/article/details/73927331

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

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

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接受这个文件

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分开始执行备份任务。 

    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()

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大闲人柴毛毛

04Linux的磁盘分区

硬件设备在Linux中的命名 Linux中每一个设备都被当成文件,所有的设备文件都在/dev这个目录下。 设备 文件名 IDE硬盘 /dev/hd[...

3857
来自专栏运维

OpenResty Redis 安装部署测试SET GET功能

https://openresty.org/cn/installation.html

1202
来自专栏Eternally运维

LNMTP安装脚本

2523
来自专栏云计算教程系列

如何在Ubuntu上使用Nginx web框架OpenResty

OpenResty® 是一个基于 Nginx 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭...

1423
来自专栏重庆的技术分享区

在Ubuntu上安装开源邮件服务器-iRedmail

运行自己的邮件服务器有很多好处。它允许您管理邮箱和附件的大小,运行每小时/每日电子邮件备份,查看邮件日志,并允许您自由使用任何可用的域名。缺点通常是安装所有必要...

2.4K2
来自专栏跟着阿笨一起玩NET

Log4Net日志记录两种方式

     log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台、文件、数据库...

3522
来自专栏乐沙弥的世界

RMAN 备份详解

RMAN使用服务器会话来完成备份操作,从RMAN客户端连接到服务器将产生一个服务器会话

1682
来自专栏余生开发

Vue+MySQL+Express vue链接数据库

npm install -g cnpm --registry=http://registry.npm.taobao.org

2.2K2
来自专栏Python中文社区

如何简单高效地部署和监控分布式爬虫项目

1、请先确保所有主机都已经安装和启动 Scrapyd,如果需要远程访问 Scrapyd,则需将 Scrapyd 配置文件中的 bind_address 修改为 ...

2154
来自专栏云知识学习

TKE中的KUBE-DNS 副本数调整

今天处理一个问题,cvm 是一个2c的cvm节点,1.10.5k8s版本,在1.10.5版本中,kube-dns的副本数默认是两个

1512

扫码关注云+社区

领取腾讯云代金券