Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash脚本上的Cron管道zcat不工作_Bash_Cron_Pipe_Goaccess - Fatal编程技术网

Bash脚本上的Cron管道zcat不工作

Bash脚本上的Cron管道zcat不工作,bash,cron,pipe,goaccess,Bash,Cron,Pipe,Goaccess,我根据此页面上的教程创建了一个脚本:。当脚本从终端运行时,它可以完美地工作。问题是当cron运行脚本时,管道似乎不起作用 我在谷歌上搜索可能的解决方案。我尝试在cron上的bash中添加“-c”,但没有效果 这是剧本 #!/bin/bash # filename: goaccess.sh (with +x permission) HOST="myHost" GOACCESSREPORT_DIR=/home/user/goaccess_reports/ DATE=$(date +'%Y.

我根据此页面上的教程创建了一个脚本:。当脚本从终端运行时,它可以完美地工作。问题是当cron运行脚本时,管道似乎不起作用

我在谷歌上搜索可能的解决方案。我尝试在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][…]也可以为命令提供以下选项:日志和日期格式选项--日期格式=-指定日志日期格式。e、 例如,%d/%b/%Y--log format=-指定日志格式。内部引号需要转义,或者使用单引号--时间格式=-指定日志时间格式。e、 例如,%H:%M:%S用户界面选项-c--config对话框-Prompt log/date/time配置窗口-i--hl标题-颜色高亮显示活动面板-m--使用鼠标-在主仪表板上启用鼠标支持--颜色=-指定自定义颜色。有关更多详细信息和选项,请参见手册页--配色方案=-方案:1=>灰色,2=>绿色,3=>莫诺凯--html custom css=-在html报告中指定自定义css文件--html custom js=-在html报告中指定自定义js文件--html prefs=-设置默认html报告首选项--html报告标题=


提前谢谢。

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

您需要在
goaccess
命令后使用破折号来告诉它您正在管道化日志:

/bin/zcat`find/var/log/nginx/-name“myhost\u access.log.*.gz”-mtime-20`|goaccess->$GOACCESSREPORT\u DIR/$HOST monthly-$DATE.html

如果您完全限定了通往
goaccess
的路径,会发生什么?@JosephSible,谢谢您的回复。我添加了完整的文件路径,但仍然不起作用。抱歉,响应太晚。它是否仍然可以从具有完全限定路径的终端上运行?如果从终端手动执行,所有操作都可以完美运行。作为测试,如果您将
goaccess
替换为
echo goaccess
,它会显示它传递的确切参数,您会得到什么?感谢您的帮助和来源。少了一个“-”哇