diff --git a/pkg/utils/os/cpu.go b/pkg/utils/os/cpu.go index b760e7f88c9f6ac31982235130925df6822f35d7..87eedec5f72b83af28b8001b29978f6b284dc818 100644 --- a/pkg/utils/os/cpu.go +++ b/pkg/utils/os/cpu.go @@ -7,6 +7,7 @@ import ( "strconv" "strings" + "openeluer.org/PilotGo/PilotGo/pkg/logger" "openeluer.org/PilotGo/PilotGo/pkg/utils" ) @@ -44,7 +45,7 @@ func GetPhysicalCPU() int { num = strings.Replace(num, "\n", "", -1) cpunum, err := strconv.Atoi(num) if err != nil { - fmt.Println("获取cpu个数失败!") + logger.Error("获取cpu个数失败!") } return cpunum } diff --git a/pkg/utils/os/disk.go b/pkg/utils/os/disk.go index 2753e97fd29f31e66e2b2eae3e0bafb28a6d5b39..b2ae6acb0bac8e2e8febe889af8644fb949d3917 100644 --- a/pkg/utils/os/disk.go +++ b/pkg/utils/os/disk.go @@ -1,9 +1,8 @@ package os import ( - "fmt" - "github.com/shirou/gopsutil/disk" + "openeluer.org/PilotGo/PilotGo/pkg/logger" ) type DiskIOInfo struct { @@ -31,7 +30,7 @@ func GetDiskUsageInfo() []DiskUsageINfo { diskusage := make([]DiskUsageINfo, 0) parts, err := disk.Partitions(true) if err != nil { - fmt.Printf("get Partitions failed, err:%v\n", err) + logger.Error("get Partitions failed, err:%v\n", err) return nil } for _, part := range parts { diff --git a/pkg/utils/os/firewall.go b/pkg/utils/os/firewall.go index 63083ad50b5a20b899b6fb225d9399bd4583745f..6017ebf938007725e1e9c93240f251f4bcfc96c2 100644 --- a/pkg/utils/os/firewall.go +++ b/pkg/utils/os/firewall.go @@ -1,57 +1,59 @@ package os import ( - "fmt" - "openeluer.org/PilotGo/PilotGo/pkg/utils" + "fmt" + + "openeluer.org/PilotGo/PilotGo/pkg/logger" + "openeluer.org/PilotGo/PilotGo/pkg/utils" ) type ZonePort struct { - Zone string - Port int + Zone string + Port int } func Restart() bool { - tmp, _ := utils.RunCommand("service firewalld restart") - if len(tmp) != 0 { - fmt.Println("重启防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("service firewalld restart") + if len(tmp) != 0 { + logger.Error("重启防火墙失败!") + return false + } + return true } func Config() bool { - tmp, _ := utils.RunCommand("firewall-cmd --list-all") - if len(tmp) != 0 { - fmt.Println("重启防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("firewall-cmd --list-all") + if len(tmp) != 0 { + logger.Error("获取防火墙配置失败!") + return false + } + return true } func Reload() bool { - tmp, _ := utils.RunCommand("firewall-cmd --reload") - if len(tmp) != 0 { - fmt.Println("更新防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("firewall-cmd --reload") + if len(tmp) != 0 { + logger.Error("更新防火墙失败!") + return false + } + return true } func Stop() bool { - tmp, _ := utils.RunCommand("service firewalld stop") - if len(tmp) != 0 { - fmt.Println("关闭防火墙失败!") - return false - } - return true + tmp, _ := utils.RunCommand("service firewalld stop") + if len(tmp) != 0 { + logger.Error("关闭防火墙失败!") + return false + } + return true } func DelZonePort(zp *ZonePort) string { //zone = block dmz drop external home internal public trusted work - tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --remove-port=%v/tcp", zp.Port)) - return tmp + tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --remove-port=%v/tcp", zp.Port)) + return tmp } func AddZonePortPermanent(zp *ZonePort) string { //zone = block dmz drop external home internal public trusted work - tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --add-port=%v/tcp", zp.Port)) - return tmp + tmp, _ := utils.RunCommand(fmt.Sprintf("firewall-cmd --permanent --zone=public --add-port=%v/tcp", zp.Port)) + return tmp } diff --git a/pkg/utils/os/user.go b/pkg/utils/os/user.go index cf1f67e0496206924f10e01798fbbf3562bf1a74..926bb1357c1f8e4cdc61b460fcb0577b3a1c5c1c 100644 --- a/pkg/utils/os/user.go +++ b/pkg/utils/os/user.go @@ -1 +1,79 @@ package os + +import ( + "bufio" + "fmt" + "os/user" + "strings" + + "openeluer.org/PilotGo/PilotGo/pkg/logger" + "openeluer.org/PilotGo/PilotGo/pkg/utils" +) + +// 获取当前用户信息 +type CurrentUser struct { + Username string + Userid string + GroupName string + Groupid string + HomeDir string +} + +// 获取所有用户的信息 +type AllUserInfo struct { + Username string + UserId string + GroupId string + Description string + HomeDir string + ShellType string +} + +func handleErr(err error) { + if err != nil { + fmt.Println(err) + } +} + +func GetCurrentUserInfo() CurrentUser { + u, err := user.Current() + handleErr(err) + userinfo := CurrentUser{ + Username: u.Username, + Userid: u.Gid, + GroupName: u.Name, + Groupid: u.Uid, + HomeDir: u.HomeDir, + } + return userinfo +} + +func GetAllUserInfo() []AllUserInfo { + tmp, err := utils.RunCommand("cat /etc/passwd") + if err != nil { + logger.Error("获取失败!%s", err) + } + reader := strings.NewReader(tmp) + scanner := bufio.NewScanner(reader) + var allUsers []AllUserInfo + for { + + if !scanner.Scan() { + break + } + line := scanner.Text() + line = strings.TrimSpace(line) + strSlice := strings.Split(line, ":") + users := AllUserInfo{ + Username: strSlice[0], + UserId: strSlice[2], + GroupId: strSlice[3], + Description: strSlice[4], + HomeDir: strSlice[5], + ShellType: strSlice[6], + } + allUsers = append(allUsers, users) + } + + return allUsers +}