From ba58b9f004c49b51707df80d8659c6029b6659ed Mon Sep 17 00:00:00 2001 From: sunty <1172534965@qq.com> Date: 星期二, 24 三月 2020 14:33:40 +0800 Subject: [PATCH] first commit --- go.mod | 3 + main.go | 97 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 0 deletions(-) diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..e27256d --- /dev/null +++ b/go.mod @@ -0,0 +1,3 @@ +module test + +go 1.12 diff --git a/main.go b/main.go new file mode 100644 index 0000000..5388689 --- /dev/null +++ b/main.go @@ -0,0 +1,97 @@ +package main + +import ( + "bytes" + "fmt" + "io/ioutil" + "net/http" + "os/exec" + "time" +) + +func main() { + + oldPeers := GetOldPeers() + fmt.Println("oldPeers: ", oldPeers) + newPeers := GetNewPeers() + fmt.Println("newPeers: ", newPeers) + UpdatePeers(oldPeers, newPeers) + time.Sleep(time.Second * 3) + nowPeers := GetOldPeers() + fmt.Println("nowPeers: ", nowPeers) +} + +func GetOldPeers() string { + str := "cat /opt/vasystem/seaweedfs_start.sh | grep peers=" + peers := RunScript(str) + return peers +} + +func GetNewPeers() string { + getUrl := "http://192.168.20.10:9200/basicfs/_search" + getJson := `{ + "query": { + "bool": { + "filter": [ + { + "term": { + "application":"nodeOperation" + } + } + ] + } + }, + "size": 1 +}` + + getRes, _ := EsReq("POST", getUrl, []byte(getJson)) + fmt.Println(getRes) + return "" +} + +func UpdatePeers(oldPeers string, newPeers string) { + str := "sed -ie 's/" + oldPeers + "/" + newPeers + "/g' /opt/vasystem/seaweedfs_start.sh" + RunScript(str) +} + +//鑴氭湰灏佽 +func RunScript(str string) string { + + cmd := exec.Command("sh", "-c", str) + var out bytes.Buffer + cmd.Stdout = &out + err := cmd.Run() + if err != nil { + return "杩愯澶辫触" + } + return out.String() +} + +//瑙f瀽http +func EsReq(method string, url string, parama []byte) (buf []byte, err error) { + timeout := time.Duration(10 * time.Second) + client := http.Client{ + Timeout: timeout, + } + request, err := http.NewRequest(method, url, bytes.NewBuffer(parama)) + request.Header.Set("Content-type", "application/json") + + if err != nil { + fmt.Println("build request fail !") + return nil, err + } + + resp, err := client.Do(request) + if err != nil { + fmt.Println("request error: ", err) + return nil, err + } + + defer resp.Body.Close() + body, err := ioutil.ReadAll(resp.Body) + if err != nil { + fmt.Println(err) + return nil, err + } + return body, nil +} -- Gitblit v1.8.0