Bash脚本上的Cron管道zcat不工作
我根据此页面上的教程创建了一个脚本:。当脚本从终端运行时,它可以完美地工作。问题是当cron运行脚本时,管道似乎不起作用 我在谷歌上搜索可能的解决方案。我尝试在cron上的bash中添加“-c”,但没有效果 这是剧本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.
#!/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
,它会显示它传递的确切参数,您会得到什么?感谢您的帮助和来源。少了一个“-”哇