You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在cron调用wget的日志中为每条记录添加换行?

解决Cron任务日志记录同行的问题

当然可以通过修改cron命令参数解决这个问题!核心原因是你当前的命令只是把网页返回的JSON内容直接追加到日志里,但服务器返回的JSON末尾没有自带换行符,导致每次执行的结果都挤在同一行。

这里有几个简单的修改方案,帮你实现每条记录单独占一行:

方案一:追加换行符到日志

修改你的cron任务行如下:

0 0 * * * (wget -t 1 - "http://urlto.job/job9" -O -; echo) >> /home/password_reset_log.txt

改动说明:

  • 用括号把wget和echo命令包裹成一个子shell,确保两个命令的输出都会被定向到日志文件
  • echo命令会自动输出一个换行符,不管wget执行成功还是失败,都会在当前执行的JSON记录后面加上换行,把下一次的结果隔开
  • 把home/password_reset_log.txt改成了绝对路径/home/password_reset_log.txt(如果你的日志文件实际位置不同,记得调整),避免cron执行时因为默认工作目录问题找不到文件

方案二:用printf格式化输出

如果你想更严谨地控制输出格式,可以用printf来确保每条记录末尾都有换行:

0 0 * * * printf "%s\n" "$(wget -t 1 - "http://urlto.job/job9" -O - 2>/dev/null)" >> /home/password_reset_log.txt

改动说明:

  • $(wget ...)会捕获网页返回的内容,printf "%s\n"会在内容末尾添加一个换行符再输出
  • 2>/dev/null用来屏蔽wget本身的错误信息(比如连接超时的提示),如果你需要保留这些信息,可以去掉这个部分

额外提示

如果你有权限修改网页端的作业,可以让它返回的JSON响应末尾自带一个换行符,这样不用修改cron命令也能解决问题。但如果没法改服务器,上面的cron命令修改方案就完全够用了。

内容的提问来源于stack exchange,提问作者Mr Dansk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:47:01