1 Star 0 Fork 0

h79/goutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
monitor.go 1.20 KB
一键复制 编辑 原始数据 按行查看 历史
huqiuyun 提交于 2023-07-22 01:28 . monitor
package system
import "time"
type Monitor struct {
Dur time.Duration `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)) {
if call == nil {
return
}
if mon.Dur < time.Second {
mon.Dur = time.Second
}
for {
select {
case <-time.After(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 flag > 0 {
call(disk, &m, c, flag)
}
}
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/h79/goutils.git
git@gitee.com:h79/goutils.git
h79
goutils
goutils
v1.8.43

搜索帮助