diff --git a/features/trace/tcpdump.go b/features/trace/tcpdump.go index 8d95a2ed..3ab91274 100644 --- a/features/trace/tcpdump.go +++ b/features/trace/tcpdump.go @@ -58,16 +58,18 @@ func TcpdumpNeTask(w http.ResponseWriter, r *http.Request) { filePcapName := fmt.Sprintf("tmp_%s_%s_%d.pcap", body.NeType, body.NeId, time.Now().UnixMilli()) fileLogName := fmt.Sprintf("tmp_%s_%s_%d.log", body.NeType, body.NeId, time.Now().UnixMilli()) - cmdStr := fmt.Sprintf("cd /tmp \n timeout %d tcpdump -i any %s -s0 -w %s >> %s 2>&1 \n cat %s", body.Timeout, body.Cmd, filePcapName, fileLogName, fileLogName) + writeLog := fmt.Sprintf(" >> %s 2>&1 \ncat %s", fileLogName, fileLogName) // 执行信息写入日志文件,放置弹出code 127 + cmdStr := fmt.Sprintf("cd /tmp \ntimeout %d tcpdump -i any %s -s0 -w %s", body.Timeout, body.Cmd, filePcapName) usernameNe := conf.Get("ne.user").(string) // 网元统一用户 sshHost := fmt.Sprintf("%s@%s", usernameNe, neInfo.Ip) - msg, err := cmd.ExecWithCheck("ssh", sshHost, cmdStr) + msg, err := cmd.ExecWithCheck("ssh", sshHost, cmdStr+writeLog) if err != nil { ctx.JSON(w, 200, result.ErrMsg(err.Error())) return } ctx.JSON(w, 200, result.OkData(map[string]any{ + "cmd": cmdStr, "msg": msg, "fileName": filePcapName, }))