GO语言本身拥有极强的性能,非常适合做一些后端的数据采集管理以及运维系统。

其中会面临对当前系统信息的采集,我在这里使用的是GO的工具包 gopsutil

贴出一套测试代码,抛砖引玉:

import (
"fmt"
"time" "github.com/shirou/gopsutil/cpu"
"github.com/shirou/gopsutil/disk"
"github.com/shirou/gopsutil/host"
"github.com/shirou/gopsutil/mem"
"github.com/shirou/gopsutil/net"
) func collet() {
v, _ := mem.VirtualMemory()
c, _ := cpu.Info()
cc, _ := cpu.Percent(time.Second, false)
d, _ := disk.Usage("/")
n, _ := host.Info()
nv, _ := net.IOCounters(true)
boottime, _ := host.BootTime()
btime := time.Unix(int64(boottime), ).Format("2006-01-02 15:04:05") fmt.Printf(" Mem : %v MB Free: %v MB Used:%v Usage:%f%%\n", v.Total//, v.Available//, v.Used//, v.UsedPercent)
if len(c) > {
for _, sub_cpu := range c {
modelname := sub_cpu.ModelName
cores := sub_cpu.Cores
fmt.Printf(" CPU : %v %v cores \n", modelname, cores)
}
} else {
sub_cpu := c[]
modelname := sub_cpu.ModelName
cores := sub_cpu.Cores
fmt.Printf(" CPU : %v %v cores \n", modelname, cores) }
fmt.Printf(" Network: %v bytes / %v bytes\n", nv[].BytesRecv, nv[].BytesSent)
fmt.Printf(" SystemBoot:%v\n", btime)
fmt.Printf(" CPU Used : used %f%% \n", cc[])
fmt.Printf(" HD : %v GB Free: %v GB Usage:%f%%\n", d.Total///, d.Free///, d.UsedPercent)
fmt.Printf(" OS : %v(%v) %v \n", n.Platform, n.PlatformFamily, n.PlatformVersion)
fmt.Printf(" Hostname : %v \n", n.Hostname)
}

代码中还包含CPU使用率采集,可用内存采集以及网络数据包收发采集,目前网络数据采集尚不稳定。

GO语言使用gopsutil包进行机器信息采集的更多相关文章

  1. R语言︱H2o深度学习的一些R语言实践——H2o包

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- R语言H2o包的几个应用案例 笔者寄语:受启发 ...

  2. Go语言基础之包

    Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...

  3. R语言:recommenderlab包的总结与应用案例

    R语言:recommenderlab包的总结与应用案例   1. 推荐系统:recommenderlab包整体思路 recommenderlab包提供了一个可以用评分数据和0-1数据来发展和测试推荐算 ...

  4. 使用R语言的RTCGA包获取TCGA数据--转载

    转载生信技能树 https://mp.weixin.qq.com/s/JB_329LCWqo5dY6MLawfEA TCGA数据源 - R包RTCGA的简单介绍 - 首先安装及加载包 - 指定任意基因 ...

  5. Go语言内置包之strconv

    文章引用自 Go语言内置包之strconv Go语言中strconv包实现了基本数据类型和其字符串表示的相互转换. strconv包 strconv包实现了基本数据类型与其字符串表示的转换,主要有以下 ...

  6. GO学习-(15) Go语言基础之包

    Go语言基础之包 在工程化的Go语言开发项目中,Go语言的源码复用是建立在包(package)基础之上的.本文介绍了Go语言中如何定义包.如何导出包的内容及如何导入其他包. Go语言的包(packag ...

  7. R语言中文分词包jiebaR

    R语言中文分词包jiebaR R的极客理想系列文章,涵盖了R的思想,使用,工具,创新等的一系列要点,以我个人的学习和体验去诠释R的强大. R语言作为统计学一门语言,一直在小众领域闪耀着光芒.直到大数据 ...

  8. R语言使用 multicore 包进行并行计算

    R语言是单线程的,如果数据量比较大的情况下最好用并行计算来处理数据,这样会获得运行速度倍数的提升.这里介绍一个基于Unix系统的并行程序包:multicore. 我们用三种不同的方式来进行一个简单的数 ...

  9. Go语言之unsafe包介绍及使用

    unsafe内容介绍 type ArbitraryType int type Pointer *ArbitraryType func Sizeof(x ArbitraryType) uintptr f ...

随机推荐

  1. Oracle单表去重复(二)

    Oracle单表去重 去重有两层含义,一:是记录完全一样.二:是符合一定条件的认为是重复. 根据表的数量,去重可划分为:单表去重和多表关联去重.   对于去重,一般最容易想到的是用distinct,而 ...

  2. 什么是HBase(六)性能调优

    硬件层面 内存要大,最好是ECC(Error Checking and Correcting),实现内存的动态纠错:CPU要多路(每个路彼此隔离)每个路一个CPU,每个cpu上面一般都是2~12核. ...

  3. bzoj2257瓶子和燃料

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2257 以两个瓶子为例,可以倒出它们的差,这是它们容量的gcd的倍数. k个瓶子就可以倒出它们 ...

  4. hadoop深入研究:(十三)——序列化框架

    hadoop深入研究:(十三)--序列化框架 Mapreduce之序列化框架(转自http://blog.csdn.net/lastsweetop/article/details/9376495) 框 ...

  5. ajax readyState=4并且status=200时,还进error方法

    今天在使用jQuery.ajax方法去调用后台方法时,ajax中得参数data类型是"JSON",后台DEBUG调试,运行正常, 返回正常的结果集,但是前端一直都进到ajax的er ...

  6. Winfrom中如何使用Iconfont字体图标补充

    1.参考技术文章:http://www.cnblogs.com/isaboy/p/csharp_Font_Awesome_window_form_icon.html 2.参考后主要纠结在图标的unic ...

  7. 马士兵Spring-dataSource

    一.简单使用例子: 这里使用commons.dbcp: beanx.xml配置: <?xml version="1.0" encoding="UTF-8" ...

  8. Mysql 备份脚本和window下如何实现自动备份

    @echo offecho.echo      MySQL数据库备份 echo *****************************echo.echo 今天是 %date%echo 时间是 %t ...

  9. 测试Linux端口的连通性的四种方法

    Linux系统有时候需要测试某个端口的连通性,用户可以参考如下方法来测试.   方法一.telnet法 telnet为用户提供了在本地计算机上完成远程主机工作的能力,因此可以通过telnet来测试端口 ...

  10. canvas变换

    canvas变换 方法 save() 保存canvas状态 restore() 回复canvas保存的状态 translate(x, y) 移动canvas位置 rotate(radians) 顺时针 ...