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