mysql备份接口

package main

import (
	"bytes"
	"fmt"
	"net/http"
	"os/exec"
)

func execShellCmdBlock(shellCmd string) (string, error) {
	var out bytes.Buffer
	cmd := exec.Command("/bin/bash", "-c", "/root/go-sh/ps.sh")
	cmd.Stdout = &out

	err := cmd.Run()

	return out.String(), err
}

func Register(requestPath string) {

	http.HandleFunc(requestPath, func(writer http.ResponseWriter, request *http.Request,) {

		err := request.ParseForm()
		if err != nil {
			return
		}

		cmds := request.Form["bash"]
		if len(cmds) != 1 {
			return
		}

		ret, err := execShellCmdBlock(cmds[0])
		if err != nil {
			panic(err)
		}

		fmt.Fprintf(writer, "%s", ret)
	})
}

func download() {
	http.Handle("/file/", http.StripPrefix("/file/", http.FileServer(http.Dir("file"))))
}


func main() {

	download()

	Register("/exec")

	err := http.ListenAndServe(":8080", nil)

	if err != nil {
		panic(err)
	}


}
dateTime=`date +%Y%m%d`

cd /backup

if [ -f "$dateTime.tar.gz" ]
then
   ls -lh *.tar.gz
   echo $dateTime 今天备份已存在,退出
   exit
else
   mkdir $dateTime
fi

xtrabackup --backup --target-dir=$dateTime --username=root --password=$MYSQL_ROOT_PASSWORD >> $dateTime.log 2>&1

tar czf $dateTime.tar.gz $dateTime

rm -rf $dateTime

find /backup/ -mtime +3 -type f -exec rm -rf {} \;

echo 备份成功

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注