【问题标题】:redirect curl output to dynamic filename every 5 minutes每 5 分钟将 curl 输出重定向到动态文件名
【发布时间】:2015-07-07 03:01:41
【问题描述】:

我可以将输出流从显示在标准输出上的 curl 重定向到动态文件名吗?我想使用 curl 建立与服务器的连接,然后每 5 分钟将命令的输出重定向到一个文件名(无需断开连接并重新建立连接)。

我试过了,但是没有用

curl ..... | tee -a "$(date +%Y%m%d_%H%M).txt"

【问题讨论】:

  • tee 进程启动时计算文件名一次。要执行您想要的操作,您需要将输出发送到计算每一行输出的输出文件位置的东西。你可以用 awk 或 perl/etc 来做到这一点。
  • 谢谢。我刚试过 curl ... | awk '{print $0}' > "$(date +%Y%m%d_%H%M).txt" 但这不起作用。
  • @PyQL 当然不是,你仍然在 shell 中重定向输出。

标签: linux bash shell unix curl


【解决方案1】:

这样的事情可能会更好:

curl ..... | \
    awk '{
        newtime = systime()
        if (newtime > oldtime + 300) {
            if (fname)
                close(fname)
            oldtime = newtime
            fname = strftime("%Y%m%d_%H%M.txt", oldtime)
        }
        print >>fname
        print
    }'

【讨论】:

    猜你喜欢
    • 2012-05-21
    • 1970-01-01
    • 2012-05-07
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 2013-10-11
    • 2023-03-19
    • 2014-03-31
    相关资源
    最近更新 更多