系统检测应用(一)

系统检测应用(1)

测试环境:

  • ubuntu16.04
  • golang: go1.8

内容

GetEnvFunc() :获取环境变量函数
GetEnvSvr() :当前只获取cpu核数


代码

package main

import (
    "bytes"
    "detect_sys/ming"
    "fmt"
    "os"
    "os/exec"
    /*     "strconv" */
    "strings"
)

// OsEnv 系统环境变量获取
type OsEnv struct {
    EnvUser string
    EnvHome string
    Pid     int
}

func main() {
    fmt.Println("start")
    fmt.Println(GetEnvFunc())
    GetEnvSvr()
    ming.StrFunc()
    fmt.Println("end")
}

//GetEnvFunc 获取环境变量函数
func GetEnvFunc() (res OsEnv) {
    res.EnvUser = os.Getenv("USER")
    res.EnvHome = os.Getenv("HOME")
    res.Pid = os.Getpid()
    return res
}

// GetEnvSvr 1.获取cpu核数
func GetEnvSvr() int {

    cmd := exec.Command("/bin/bash","-c","lscpu |grep 'cpu(s)' |grep -v 'li'|grep -v '-'|awk  '{print $1}'")
    var out bytes.Buffer

    cmd.Stdout = &out
    err := cmd.Run()
    if err != nil {
        fmt.Println("error")
        return -1
    }
    // 去除空格
    str := strings.Replace(out.String()," ","",-1)
    // 去除换行符
    str = strings.Replace(str,"\n",-1)
    fmt.Println("cpu核数:" + str)
    return 1
}

相关文章

程序目录结构 简单实现,用户登录后返回一个jwt的token,下次请求带上token请求用户信息接口并返回信息...
本篇博客的主要内容是用go写一个简单的Proof-of-Work共识机制,不涉及到网络通信环节,只是一个本地的简...
简介 默克尔树(MerkleTree)是一种典型的二叉树结构,其主要特点为: 最下面的叶节点包含存储数据或其...
接下来学习并发编程, 并发编程是go语言最有特色的地方, go对并发编程是原生支持. goroutine是go中最近本...
先普及一下, 什么是广度优先搜索 广度优先搜索类似于树的层次遍历。从图中的某一顶点出发,遍历每一个顶...
第一天: 接口的定义和实现 第二天: 一. go语言是面向接口编程. 在学习继承的时候说过, go语言只有封装,...