【问题标题】:Cron job for generate Go Access report not working用于生成 Go Access 报告的 Cron 作业不起作用
【发布时间】:2021-01-08 03:52:28
【问题描述】:

在我的根 crontab (sudo crontab -e) 中,我有这份工作来生成 Go Access 日志报告:

* * * * * goaccess /var/log/nginx/access.log -o /home/me/some/path/report.html

它工作得很好。我也有这份工作来生成跨越多天的报告:

* * * * * sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html

Cron 说它可以运行,但实际上似乎并没有运行。我环顾四周并尝试了很多事情(包括按照此处的列表-https://stackoverflow.com/a/22744360/3761310),但仍然无法运行这项工作。如果我自己运行命令,它会按预期生成文件。我还尝试了管道之前的部分,输出到一个 txt 文件中并且有效。所以我怀疑这是与 Go Access 的一些交互。

当我启用 cron 日志记录时,该作业运行时显示如下:

(root) CMD (sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html)

有什么建议吗?谢谢!

【问题讨论】:

  • 这可能对askubuntu.com/questions/173924/…有帮助
  • @theBashShell 感谢您的回复。我实际上是在那里开始了我的夜晚,这就是为什么我将这些命令放在sudo crontab -e 中。我从那个帖子中遗漏了什么吗?
  • 您声称它特定于goaccess 和/或zcat,实际上是这样吗?您观察到什么得出“它实际上似乎没有运行”的结论?您何时以及为何使用sudo?这甚至与这个问题有关吗?

标签: cron zcat goaccess


【解决方案1】:

您需要让 goaccess 知道您正在使用 - 管道传输数据。例如,

* * * * * sudo zcat -f /var/log/nginx/access.log* | goaccess - -o /home/me/some/path/bigger_report.html

【讨论】:

  • 谢谢,这似乎已经解决了。我不知道是这种情况,因为该命令在手动运行时运行良好,但对于将来的任何人来说,相关文档似乎在“多个日志文件”下 - goaccess.io/man#examples
  • 这节省了一天的时间。 @DukeSilver 当然可以,但是为什么要花 10 分钟阅读文档而不是随机尝试 2 小时来解决问题呢?我总是更喜欢后者。
猜你喜欢
  • 2015-02-23
  • 1970-01-01
  • 2016-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-03
  • 1970-01-01
相关资源
最近更新 更多