1 Star 0 Fork 0

h79 / goutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
monitor.go 1.21 KB
一键复制 编辑 原始数据 按行查看 历史
huqiuyun 提交于 2024-01-08 11:56 . bug: monitor
package system
import "time"
type Monitor struct {
Dur int `json:"dur" yaml:"dur"` //单位秒
Diff int64 `json:"diff" yaml:"diff"`
Count int `json:"count" yaml:"count"`
Cpu int `json:"cpu" yaml:"cpu"`
Mem int `json:"mem" yaml:"mem"`
Disk int `json:"disk" yaml:"disk"`
DiskPath string `json:"diskPath" yaml:"diskPath"`
}
func (mon *Monitor) RunMonitor(call func(d []DiskPath, m *MemInfo, cpuPercent float64, flag int) int) {
if call == nil {
return
}
if mon.Dur <= 0 {
mon.Dur = 1
}
for {
select {
case <-Closed():
return
case <-time.After(time.Second * time.Duration(mon.Dur)):
flag := 0
c := CpuPercent()
if int(c) >= mon.Cpu {
flag = 1
}
var disk []DiskPath
if mon.DiskPath == "" { //所有磁盘
d := DiskAll()
for i := range d {
if int(d[i].UsedPercent) >= mon.Disk {
flag |= 2
disk = append(disk, d[i])
}
}
} else { //当前运行磁盘
d := DiskWithPath(mon.DiskPath)
if int(d.UsedPercent) >= mon.Disk {
flag |= 2
disk = append(disk, d)
}
}
m := Mem()
if int(m.UsedPercent) >= mon.Mem {
flag |= 4
}
if 0 != call(disk, &m, c, flag) {
return
}
}
}
}
Go
1
https://gitee.com/h79/goutils.git
git@gitee.com:h79/goutils.git
h79
goutils
goutils
v1.20.65

搜索帮助