起因
今天被通知发现一个网站没有显示数据
查看原因,服务器上被新部署了
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