【问题标题】:Cron Pipe zcat on Bash Script not workingBash 脚本上的 Cron Pipe zcat 不起作用
【发布时间】:2020-09-08 06:46:56
【问题描述】:

我根据此页面上的教程创建了一个脚本:https://johnveldboom.com/posts/goaccess-automated-reports-last-30-days-via-cron/。当脚本从终端运行时,它可以完美运行。问题是当 cron 运行脚本时,管道似乎不起作用。

我在 Google 上搜索了可能的解决方案。我尝试在 cron 的 bash 中添加“-c”,但这没有帮助。

这是脚本

 #!/bin/bash
 # filename: goaccess.sh (with +x permission)
 HOST="myHost"
 GOACCESSREPORT_DIR=/home/user/goaccess_reports/
 DATE=$(date +'%Y.%m')
 /bin/zcat `find /var/log/nginx/ -name "myhost_access.log.*.gz" -mtime -20` | goaccess > $GOACCESSREPORT_DIR/$HOST-monthly-$DATE.html
 echo "My Host GoAccess Report" | sudo mail -s "My Host GoAccess Report" email@test.com -A $GOACCESSREPORT_DIR/$HOST-monthly-$DATE.html

这是我的计划

 00 22 * * 5 /bin/bash -c /home/user/goaccess.sh

输出文件信息如下,让我认为管道不工作:

GoAccess - 1.2 用法:goaccess [filename] [ options ... ] [-c][-M][-H][-q][-d][...] 也可以提供以下选项命令:日志和日期格式选项 --date-format= - 指定日志日期格式。例如,%d/%b/%Y --log-format= - 指定日志格式。内引号需要转义,或者使用单引号。 --time-format= - 指定日志时间格式。例如,%H:%M:%S 用户界面选项 -c --config-dialog - 提示日志/日期/时间配置窗口。 -i --hl-header - 颜色突出显示活动面板。 -m --with-mouse - 在主仪表板上启用鼠标支持。 --color= - 指定自定义颜色。有关更多详细信息和选项,请参见手册页。 --color-scheme= - 方案:1 => 灰色,2 => 绿色,3 => Monokai。 --html-custom-css= - 在 HTML 报告中指定自定义 CSS 文件。 --html-custom-js= - 在 HTML 报告中指定自定义 JS 文件。 --html-prefs= - 设置默认的 HTML 报告首选项。 --html-report-title=

提前谢谢你。

【问题讨论】:

  • 如果您完全限定goaccess 的路径会发生什么?
  • @JosephSible-ReinstateMonica,感谢您的回复。我添加了完整的文件路径,但仍然无法正常工作。抱歉回复晚了。
  • 在具有完全限定路径的终端上仍然可以工作吗?
  • 如果从终端手动执行,一切都可以完美运行。
  • 作为一个测试,如果你将goaccess 替换为echo goaccess,你会得到什么,以便它显示它传递的确切参数?

标签: bash cron pipe goaccess


【解决方案1】:

我遇到了同样的问题,找到了答案here。

您需要在goaccess 命令之后使用破折号来告诉它您正在通过管道输入日志:

/bin/zcat `find /var/log/nginx/ -name "myhost_access.log.*.gz" -mtime -20` | goaccess - > $GOACCESSREPORT_DIR/$HOST-monthly-$DATE.html

【讨论】:

  • 感谢您的帮助和来源。少了一个“-”哇
猜你喜欢
  • 2014-05-23
  • 2013-08-03
  • 1970-01-01
  • 1970-01-01
  • 2011-08-15
  • 2012-10-22
  • 1970-01-01
  • 1970-01-01
  • 2014-06-03
相关资源
最近更新 更多