
Fix the app store classification problem Fix the application market classification problem
112 lines
2.1 KiB
Go
112 lines
2.1 KiB
Go
package command
|
|
|
|
import (
|
|
"bufio"
|
|
"context"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os/exec"
|
|
"time"
|
|
)
|
|
|
|
func OnlyExec(cmdStr string) {
|
|
cmd := exec.Command("/bin/bash", "-c", cmdStr)
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
return
|
|
}
|
|
defer stdout.Close()
|
|
if err := cmd.Start(); err != nil {
|
|
return
|
|
}
|
|
cmd.Wait()
|
|
return
|
|
}
|
|
|
|
func ExecResultStrArray(cmdStr string) []string {
|
|
cmd := exec.Command("/bin/bash", "-c", cmdStr)
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return nil
|
|
}
|
|
defer stdout.Close()
|
|
if err = cmd.Start(); err != nil {
|
|
fmt.Println(err)
|
|
return nil
|
|
}
|
|
//str, err := ioutil.ReadAll(stdout)
|
|
var networklist = []string{}
|
|
outputBuf := bufio.NewReader(stdout)
|
|
for {
|
|
output, _, err := outputBuf.ReadLine()
|
|
if err != nil {
|
|
if err.Error() != "EOF" {
|
|
fmt.Printf("Error :%s\n", err)
|
|
}
|
|
break
|
|
}
|
|
networklist = append(networklist, string(output))
|
|
}
|
|
cmd.Wait()
|
|
return networklist
|
|
}
|
|
|
|
func ExecResultStr(cmdStr string) string {
|
|
cmd := exec.Command("/bin/bash", "-c", cmdStr)
|
|
stdout, err := cmd.StdoutPipe()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return ""
|
|
}
|
|
defer stdout.Close()
|
|
if err := cmd.Start(); err != nil {
|
|
fmt.Println(err)
|
|
return ""
|
|
}
|
|
str, err := ioutil.ReadAll(stdout)
|
|
cmd.Wait()
|
|
if err != nil {
|
|
fmt.Println(err)
|
|
return ""
|
|
}
|
|
return string(str)
|
|
}
|
|
|
|
//执行 lsblk 命令
|
|
func ExecLSBLK() []byte {
|
|
output, err := exec.Command("lsblk", "-O", "-J", "-b").Output()
|
|
if err != nil {
|
|
fmt.Println("lsblk", err)
|
|
return nil
|
|
}
|
|
return output
|
|
}
|
|
|
|
//执行 lsblk 命令
|
|
func ExecLSBLKByPath(path string) []byte {
|
|
output, err := exec.Command("lsblk", path, "-O", "-J", "-b").Output()
|
|
if err != nil {
|
|
fmt.Println("lsblk", err)
|
|
return nil
|
|
}
|
|
return output
|
|
}
|
|
|
|
//exec smart
|
|
func ExecSmartCTLByPath(path string) []byte {
|
|
timeout := 3
|
|
ctx, cancel := context.WithTimeout(context.Background(), time.Duration(timeout)*time.Second)
|
|
defer cancel()
|
|
output, err := exec.CommandContext(ctx, "smartctl", "-a", path, "-j").Output()
|
|
if err != nil {
|
|
fmt.Println("smartctl", err)
|
|
return nil
|
|
}
|
|
return output
|
|
}
|
|
|
|
func ExecEnabledSMART(path string) {
|
|
|
|
exec.Command("smartctl", "-s on", path).Output()
|
|
}
|