From 021e39549eba3e24db13d56218b55b892ca6e978 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=8C=BD=E6=99=B4-StaySunny?= <40056573+StaySunny66@users.noreply.github.com> Date: Fri, 15 Sep 2023 19:24:46 +0800 Subject: [PATCH] Delete main.go --- main.go | 258 -------------------------------------------------------- 1 file changed, 258 deletions(-) delete mode 100644 main.go diff --git a/main.go b/main.go deleted file mode 100644 index ce0b053..0000000 --- a/main.go +++ /dev/null @@ -1,258 +0,0 @@ -package main - -import ( - "fmt" - "github.com/shirou/gopsutil/cpu" - "github.com/shirou/gopsutil/disk" - "github.com/shirou/gopsutil/host" - "github.com/shirou/gopsutil/load" - "github.com/shirou/gopsutil/mem" - "github.com/shirou/gopsutil/net" - "net/http" - "time" - "encoding/json" - "github.com/labstack/echo/v4" - "github.com/labstack/echo/v4/middleware" - "github.com/skip2/go-qrcode" - "os" - "encoding/base64" - "io/ioutil" - "github.com/labstack/gommon/log" - - - -) - - -type Status struct { - T time.Time `json:"-"` - Cpu float64 `json:"cpu"` - Mem struct { - Current uint64 `json:"current"` - Total uint64 `json:"total"` - } `json:"mem"` - Swap struct { - Current uint64 `json:"current"` - Total uint64 `json:"total"` - } `json:"swap"` - Disk struct { - Current uint64 `json:"current"` - Total uint64 `json:"total"` - } `json:"disk"` - Uptime uint64 `json:"uptime"` - Loads []float64 `json:"loads"` - TcpCount int `json:"tcpCount"` - UdpCount int `json:"udpCount"` - NetIO struct { - Up uint64 `json:"up"` - Down uint64 `json:"down"` - } `json:"netIO"` - NetTraffic struct { - Sent uint64 `json:"sent"` - Recv uint64 `json:"recv"` - SentM uint64 `json:"sentM"` - RecvM uint64 `json:"recvM"` - } `json:"netTraffic"` -} - - - -func show_qrcode(){ - - fmt.Println("欢迎使用服务器监控脚本") - fmt.Println("------------------稍等片刻-----------------") - fmt.Println("获取公网IP") - - - resp, err := http.Get("https://api4.ipify.org/?format=text") - if err != nil { - fmt.Println("无法获取IP地址:", err) - return - } - defer resp.Body.Close() - - body, err := ioutil.ReadAll(resp.Body) - if err != nil { - fmt.Println("无法读取响应:", err) - return - } - - local_ip := string(body) - - - fmt.Println("你的外部IP地址是:", local_ip) - fmt.Println("服务器端口号", 1323) - - url:= "http://"+local_ip+":1323/" - - data := []byte(url) - // 进行Base64编码 - encoded := base64.StdEncoding.EncodeToString(data) - fmt.Println("绑定ID", encoded) - - - - // 生成二维码 - qr, err := qrcode.New(encoded, qrcode.Medium) - if err != nil { - fmt.Println("生成二维码时出错:", err) - os.Exit(1) - } - - - fmt.Println("\n") - - fmt.Println("请使用微信小程序 矢光小屋 扫描下方二维码 添加服务器") - fmt.Println("\n") - - // 在终端中显示二维码 - fmt.Println(qr.ToSmallString(false)) -} - -func customLogger() echo.MiddlewareFunc { - return func(next echo.HandlerFunc) echo.HandlerFunc { - return func(c echo.Context) error { - // 获取Echo的默认日志记录器 - logger := c.Echo().Logger - // 设置日志级别为致命错误 - logger.SetLevel(log.ERROR) - // 执行下一个中间件或处理程序 - return next(c) - } - } -} - - - -func GetStatus(lastStatus *Status) *Status { - now := time.Now() - status := &Status{ - T: now, - } - - percents , err := cpu.Percent(0, false) - if err != nil { - fmt.Println("get cpu percent failed:", err) - } else { - status.Cpu = percents[0] - } - - upTime , err := host.Uptime() - if err != nil { - fmt.Println("get uptime failed:", err) - } else { - status.Uptime = upTime - } - - memInfo, err := mem.VirtualMemory() - if err != nil { - fmt.Println("get virtual memory failed:",err) - } else { - status.Mem.Current = memInfo.Used - status.Mem.Total = memInfo.Total - } - - swapInfo, err := mem.SwapMemory() - if err != nil { - fmt.Println("get swap memory failed:", err) - } else { - status.Swap.Current = swapInfo.Used - status.Swap.Total = swapInfo.Total - } - - distInfo,err := disk.Usage("/") - if err != nil { - fmt.Println("get dist usage failed:", err) - } else { - status.Disk.Current = distInfo.Used/1024/1024 - status.Disk.Total = distInfo.Total/1024/1024 - } - - avgState, err := load.Avg() - if err != nil { - fmt.Println("get load avg failed:",err) - } else { - status.Loads = []float64{avgState.Load1, avgState.Load5, avgState.Load15} - } - - ioStats, err := net.IOCounters(false) - if err != nil { - fmt.Println("get io counters failed:", err) - } else if len(ioStats) > 0 { - ioStat := ioStats[0] - status.NetTraffic.Sent = ioStat.BytesSent - status.NetTraffic.Recv = ioStat.BytesRecv - status.NetTraffic.SentM = ioStat.BytesSent/1024/1024 - status.NetTraffic.RecvM = ioStat.BytesRecv/1024/1024 - - if lastStatus != nil { - duration := now.Sub(lastStatus.T) - seconds := float64(duration) / float64(time.Second) - up := uint64(float64(status.NetTraffic.Sent-lastStatus.NetTraffic.Sent) / seconds) - down := uint64(float64(status.NetTraffic.Recv-lastStatus.NetTraffic.Recv) / seconds) - status.NetIO.Up = up - status.NetIO.Down = down - } - } else { - fmt.Println("can not find io counters") - } - - status.TcpCount, err = 0,nil // GetTCPCount() - if err != nil { - fmt.Println("get tcp connections failed:", err) - } - - status.UdpCount, err = 0,nil // GetUDPCount() - if err != nil { - fmt.Println("get udp connections failed:", err) - } - - return status -} - - -var S *Status - - - -func main() { - - - // Echo instance - e := echo.New() - - // Middleware - //e.Use(middleware.Logger()) - e.Use(middleware.Recover()) - e.Use(customLogger()) - - // Routes - e.GET("/", hello) - e.GET("/", state) - - show_qrcode() - - // Start server - e.Logger.Fatal(e.Start(":1323")) - - e.Logger.SetOutput(ioutil.Discard) - -} - -// Handler -func hello(c echo.Context) error { - return c.String(http.StatusOK, "Hello, World!") -} - -func state(c echo.Context) error { - - - S = GetStatus(S); - - bytes, err := json.Marshal(S) - if err != nil { - panic(err) - } - return c.String(http.StatusOK, string(bytes)) - -} \ No newline at end of file