【问题标题】:How to capture curl trace output into a log file如何将 curl 跟踪输出捕获到日志文件中
【发布时间】:2020-02-28 04:40:58
【问题描述】:

我有下面的 shell 脚本,它执行带有跟踪的 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

【问题讨论】:

  • 用这个$cmd -H $app_header 2>> /log/trace_output.log >> /log/call_app_service.log替换这个$cmd -H $app_header >> /log/call_app_service.log

标签: bash shell unix curl


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2012-11-23
    • 2021-09-10
    • 2023-03-31
    • 2021-09-10
    • 1970-01-01
    • 2023-01-10
    • 2013-11-11
    • 1970-01-01
    • 2021-01-23
    相关资源
    最近更新 更多