起因
- 今天被通知发现一个网站没有显示数据 
- 查看原因,服务器上被新部署了 - php网站如下 
- 部署的为某 - CMS如 下 
- 集成环境为 - phpStudy如下 
- 检查发现 mysql,nginx被替换,原来数据库数据消失(被删除)
- 准备采用自动备份的数据库文件(每一周备份一次保存最近一个月的数据)进行还原
发现无法直接利用xorm所备份的sql文件,错误提示为语法错误其中包括采用 xorm自带的还原方式
- 写了一段代码fix备份所产生的语法问题
代码如下
package main
import (
    "bytes"
    "flag"
    "fmt"
    "io/ioutil"
)
var (
    in  string
    out string
)
func init() {
    flag.StringVar(&in, `i`, ``, `Use -i <sql file src path eg:in.sql>`)
    flag.StringVar(&out, `o`, ``, `Use -o <sql file dest path eg:out.sql>`)
}
func main() {
    flag.Parse()
    if len(in) == 0 {
        fmt.Println(`Use -i <sql file src path eg:in.sql>`)
        return
    }
    if len(out) == 0 {
        fmt.Println(`Use -o <sql file dest path eg:out.sql>`)
        return
    }
    buf, err := ioutil.ReadFile(in)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
    buf = bytes.Replace(buf, []byte("\r\n"), []byte(" "), -1)
    buf = bytes.Replace(buf, []byte(" +0800 CST"), []byte(""), -1)
    err = ioutil.WriteFile(out, buf, 0777)
    if err != nil {
        fmt.Println(err.Error())
        return
    }
}
使用方式
fix.exe -i back.sql -o out.sql




Comments