mirror of
https://github.com/oneclickvirt/basics.git
synced 2025-10-07 01:23:00 +08:00
99 lines
2.2 KiB
Go
99 lines
2.2 KiB
Go
package utils
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
// GetCpuCache 查询CPU三缓
|
|
func GetCpuCache() string {
|
|
return ""
|
|
}
|
|
|
|
func CheckCPUFeatureWindows(subkey string, value string) (string, bool) {
|
|
return "", false
|
|
}
|
|
|
|
func CheckVMTypeWithWIMC() string {
|
|
return ""
|
|
}
|
|
|
|
func GetLoad1() float64 {
|
|
return 0
|
|
}
|
|
|
|
// GetTCPAccelerateStatus 查询TCP控制算法
|
|
func GetTCPAccelerateStatus() string {
|
|
cmd := exec.Command("sysctl", "-n", "net.ipv4.tcp_congestion_control")
|
|
var out bytes.Buffer
|
|
cmd.Stdout = &out
|
|
err := cmd.Run()
|
|
if err != nil {
|
|
return ""
|
|
} else {
|
|
return out.String()
|
|
}
|
|
}
|
|
|
|
// 解析时区信息
|
|
func parseTimeZone(output string) string {
|
|
// 在输出中查找 Time zone 字符串
|
|
index := strings.Index(output, "Time zone")
|
|
if index != -1 {
|
|
// 如果找到,则截取 Time zone 字符串后的部分
|
|
output = output[index+len("Time zone")+1:]
|
|
// 找到冒号后的第一个空格,分割字符串获取时区信息
|
|
parts := strings.SplitN(output, " ", 2)
|
|
if len(parts) > 1 {
|
|
return strings.TrimSpace(parts[1])
|
|
}
|
|
}
|
|
return ""
|
|
}
|
|
|
|
// GetTimeZone 获取当前时区
|
|
func GetTimeZone() string {
|
|
var CurrentTimeZone string
|
|
output, err := exec.Command("timedatectl", "|", "grep", "Time zone").Output()
|
|
if err == nil && strings.Contains(string(output), "Time zone") {
|
|
timeZone := parseTimeZone(string(output))
|
|
CurrentTimeZone = timeZone
|
|
} else {
|
|
output, err = exec.Command("date", "+%Z").Output()
|
|
if err == nil {
|
|
timeZone := strings.TrimSpace(string(output))
|
|
CurrentTimeZone = timeZone
|
|
}
|
|
}
|
|
return CurrentTimeZone
|
|
}
|
|
|
|
// GetPATH 检测本机的PATH环境是否含有对应的命令
|
|
func GetPATH(key string) (string,bool) {
|
|
// 指定要搜索的目录列表
|
|
dirs := []string{"/usr/local/bin", "/usr/local/sbin", "/usr/bin", "/usr/sbin", "/sbin", "/bin", "/snap/bin"}
|
|
// 循环遍历每个目录
|
|
for _, dir := range dirs {
|
|
// 检查目录是否存在
|
|
_, err := os.Stat(dir)
|
|
if os.IsNotExist(err) {
|
|
continue
|
|
}
|
|
cmd := exec.Command("ls", dir)
|
|
output, err := cmd.Output()
|
|
if err != nil {
|
|
continue
|
|
}
|
|
files := strings.Split(string(output), "\n")
|
|
for _, file := range files {
|
|
if file == key {
|
|
return dir, true
|
|
}
|
|
}
|
|
}
|
|
return "", false
|
|
}
|
|
|