From a359ba72673d78e5daae5e4ea21c047ad684b530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=AD=90=E9=BE=99?= Date: Fri, 7 Jul 2023 14:10:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=8C=96=E8=BF=90=E7=BB=B4?= =?UTF-8?q?=20=E7=AB=8B=E5=8D=B3=E6=89=A7=E8=A1=8C=20fix?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/service/task_manage.go | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/service/task_manage.go b/src/service/task_manage.go index 33c142f..9a0b182 100644 --- a/src/service/task_manage.go +++ b/src/service/task_manage.go @@ -223,6 +223,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { //} //req.Script = string(y) //写入执行脚本 + fmt.Println("1111111111111111111111") f2, err := os.Create("/etc/ansible/ansible.yml") if err != nil { return resp.FileExecError.WithError(err) @@ -232,6 +233,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { if err != nil { return resp.FileExecError.WithError(err) } + fmt.Println("2222222222222") //写入额外yml参数 if req.Type == 1 { //写入执行脚本 @@ -252,7 +254,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { } else { cmd = exec.Command("ansible-playbook", "/etc/ansible/ansible.yml") } - + fmt.Println("333333333333333") //捕获正常日志 stdout, err := cmd.StdoutPipe() if err != nil { @@ -267,15 +269,17 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { if err = cmd.Start(); err != nil { return resp.CmdExecError.WithError(err) } + fmt.Println("4444444444444444444") //获取正常/异常 输出流 outputBuf := bufio.NewReader(stdout) readerr := bufio.NewReader(stderr) var out, outErr int for { + fmt.Println("666666666666666") //逐行打印日志 lineOut, err1 := outputBuf.ReadString('\n') - if err1 != nil || io.EOF == err1 { + if (err1 != nil || io.EOF == err1) && out == 0 { fmt.Println("捕获标准输出line:", lineOut) fmt.Println("捕获标准输出err:", err1) out = 1 @@ -285,7 +289,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { } lineErr, err2 := readerr.ReadString('\n') - if err2 != nil || io.EOF == err2 { + if (err2 != nil || io.EOF == err2) && outErr == 0 { fmt.Println("捕获标准错误line:", lineErr) fmt.Println("捕获标准错误err:", err) outErr = 1 @@ -297,7 +301,7 @@ func (t *TaskManageSvc) ExecScript(req request.ExecScriptReq) (err error) { break } } - + fmt.Println("55555555555555") cmd.Wait() fmt.Println("执行结束") -- 2.26.0