代码拉取完成,页面将自动刷新
package monitor
import (
"gitee.com/liucxer/ceph-tools/pkg/host_client"
"github.com/sirupsen/logrus"
"io/ioutil"
"regexp"
"strconv"
"strings"
)
func GetHostFree(client *host_client.HostClient) (MonitorResultItem, error) {
var (
res MonitorResultItem
err error
)
bts, err := client.ExecCmd("free -m")
if err != nil {
res.Error = err.Error()
return res, err
}
freeInt, err := DecodeByte(bts)
if err != nil {
res.Error = err.Error()
return res, err
}
if freeInt < 5*1024 {
res.IsOk = false
res.Error = strconv.Itoa(int(freeInt/1024)) + "G"
res.Success = strconv.Itoa(int(freeInt/1024)) + "G"
} else {
res.IsOk = true
res.Error = strconv.Itoa(int(freeInt/1024)) + "G"
res.Success = strconv.Itoa(int(freeInt/1024)) + "G"
}
return res, err
}
func DecodeFree() (int64, error) {
var (
free int64
)
bts, err := ioutil.ReadFile("/Users/liucx/Documents/gopath/src/gitee.com/liucxer/ceph-tools/pkg/monitor/free_data.json")
if err != nil {
return free, err
}
return DecodeByte(bts)
}
func DecodeByte(bts []byte) (int64, error) {
var (
free int64
freeStr string
)
str := string(bts)
list := strings.Split(str, "\n")
for _, item := range list {
if strings.Contains(item, "Mem") {
re := regexp.MustCompile(`\s+`)
result := re.ReplaceAllString(item, " ")
subList := strings.Split(result, " ")
freeStr = subList[3]
}
}
freeInt, err := strconv.Atoi(freeStr)
if err != nil {
logrus.Errorf("strconv.Atoi err:%v, freeStr:%s", err, freeStr)
return free, err
}
free = int64(freeInt)
return free, err
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。