用于生成Go Access报告的Cron作业不起作用

问题描述

在我的根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)

有指针吗?谢谢!

解决方法

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

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