如何将curl跟踪输出捕获到日志文件中

时间:2019-11-01 22:54:09

标签: bash shell unix curl

我有以下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 个答案:

答案 0 :(得分:4)

  

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

您要捕获的输出来自stdout。您缺少的输出来自stderr,而该输出仍将发送到终端而不是文件。

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

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