fix: 修改命令执行函数的超时处理和输出文件名
This commit is contained in:
@@ -8,18 +8,13 @@ import (
|
|||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
// Exec 本地执行命令,默认超时20s 列如:("ls -ls")
|
// Exec 本地执行命令 列如:("ls -ls")
|
||||||
func Exec(cmdStr string) (string, error) {
|
func Exec(cmdStr string) (string, error) {
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second)
|
|
||||||
defer cancel()
|
|
||||||
cmd := exec.Command("bash", "-c", cmdStr)
|
cmd := exec.Command("bash", "-c", cmdStr)
|
||||||
var stdout, stderr bytes.Buffer
|
var stdout, stderr bytes.Buffer
|
||||||
cmd.Stdout = &stdout
|
cmd.Stdout = &stdout
|
||||||
cmd.Stderr = &stderr
|
cmd.Stderr = &stderr
|
||||||
err := cmd.Run()
|
err := cmd.Run()
|
||||||
if ctx.Err() == context.DeadlineExceeded {
|
|
||||||
return "", fmt.Errorf("errCmdTimeout %v", err)
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
errMsg := ""
|
errMsg := ""
|
||||||
if len(stderr.String()) != 0 {
|
if len(stderr.String()) != 0 {
|
||||||
|
|||||||
@@ -266,8 +266,8 @@ func (r NeVersion) operateCommand(action, neType string, neFilePaths []string) (
|
|||||||
omcStrArr = append(omcStrArr, fmt.Sprintf("sudo rm %s", strings.Join(neFilePaths, " ")))
|
omcStrArr = append(omcStrArr, fmt.Sprintf("sudo rm %s", strings.Join(neFilePaths, " ")))
|
||||||
|
|
||||||
// 2s后执行omc相关命令
|
// 2s后执行omc相关命令
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo rm -f /tmp/omc_%s.out \n", action))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("sudo rm -f /tmp/operate_run_%s_omc.out \n", action))
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("nohup sh -c \"sleep 2s && %s\" > /tmp/omc_%s.out 2>&1 & \n", strings.Join(omcStrArr, " && "), action))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("nohup sh -c \"sleep 2s && %s\" > /tmp/operate_run_%s_omc.out2>&1 & \n", strings.Join(omcStrArr, " && "), action))
|
||||||
cmdStrArr = append(cmdStrArr, fmt.Sprintf("echo '%s' \n", okFlagStr))
|
cmdStrArr = append(cmdStrArr, fmt.Sprintf("echo '%s' \n", okFlagStr))
|
||||||
return okFlagStr, cmdStrArr, nil
|
return okFlagStr, cmdStrArr, nil
|
||||||
} else if neType == "IMS" {
|
} else if neType == "IMS" {
|
||||||
|
|||||||
Reference in New Issue
Block a user