如何将curl跟踪输出保存到日志文件中

3

我有以下的 shell 脚本,其中使用 trace 执行 curl 命令。我能够将 curl 命令的输出(api 响应)捕获到日志文件中,但无法将跟踪日志捕获到日志文件中。请帮助。

#! /bin/bash

app_header="app_header:test_app"
cmd="curl -ivk —trace GET https://app.corp.com/api/state/1231231?id=21"
echo $cmd >> /log/call_app_service.log

for i in {1..2}
do
    echo "Running $i times" >> /log/call_app_service.log
    $cmd -H $app_header >> /log/call_app_service.log
    echo "\n" >> /log/call_app_service.log
    sleep 1
done

1
将此代码 $cmd -H $app_header >> /log/call_app_service.log 替换为 $cmd -H $app_header 2>> /log/trace_output.log >> /log/call_app_service.log - accdias
1个回答

6

我能够将curl命令的输出(api响应)捕获到日志文件中,但无法将跟踪日志捕获到日志文件中。

你正在捕获的输出来自stdout。而你错过的输出来自stderr,它仍然传输到终端而不是文件。

你可以将标准错误(fd 2)重定向到标准输出(fd 1)。

$cmd -H $app_header >> /log/call_app_service.log 2>&1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接