基于go实现简单的计算自资源监控

局域网内的计算机资源监控,包括CPU,内存和磁盘。项目共包括四个部分:

  1. 前端负责展示监控的结果
  2. 客户端负责收集本机的资源数据,并上报数据库
  3. 数据库存储各客户端发来的数据
  4. 服务端负责整个数据库的数据,对接前端的请求。以及定时清理数据库的数

客户端地址服务端地址webUI地址

此外呢,数据库还有一些要求:
目前配置的数据库名叫“monitor”
其中必须要包含一个表“template”,就是一个模板,使用以下语句创建即可

CREATE TABLE `template` (
  `id` int NOT NULL AUTO_INCREMENT,
  `time` datetime DEFAULT NULL,
  `source` json DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci

客户端程序启动前,会检查是否有以本机ip命名的表,如果有,就正常写入数据,如果没有,就复制template表创建。然后呢,客户端每24小时还会清理一次本表的数据,超过24的直接删除。

服务端就是为了整个各个客户端的数据,然后给前端。

最后的效果如下图:
请添加图片描述
整套代码很简单,性能也不错,几乎不占用计算机的资源。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
可以使用Golang的标准库中的`os`和`filepath`包来实现Windows文件监控。具体步骤如下: 1. 使用`os.Stat()`函数获取待监控文件的信息,包括文件名、路径、大小、修改时间等。 2. 使用`os.Open()`函数打开待监控文件。 3. 使用`os.File`对象的`Stat()`函数获取文件的当前信息,包括大小和修改时间。 4. 使用`os.File`对象的`Seek()`函数将文件指针移到文件末尾。 5. 使用`os.File`对象的`Read()`函数读取文件末尾的数据,如果读到数据,则表示文件有更新。 6. 如果文件有更新,则可以执行相应的操作,如打印文件更新信息等。 下面是一个简单的示例代码: ``` package main import ( "fmt" "os" "path/filepath" "time" ) func main() { filename := "test.txt" path, err := filepath.Abs(filename) if err != nil { fmt.Println(err) return } fi, err := os.Stat(path) if err != nil { fmt.Println(err) return } for { time.Sleep(time.Second) // 每秒检查一次文件更新 currFi, err := os.Stat(path) if err != nil { fmt.Println(err) continue } if currFi.Size() != fi.Size() || currFi.ModTime() != fi.ModTime() { fi = currFi fmt.Printf("File %s has been updated!\n", filename) // 可以在这里执行相应的操作 } } } ``` 在上面的示例中,程序会每秒检查一次文件是否有更新,如果文件有更新,则打印相应的信息。在实际应用中,可以根据具体需求执行相应的操作,如发送邮件、上传文件等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lsjweiyi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值