我一直在用这个剧本拉头发:
#!/bin/bash
echo Content-type: text/html
echo ""
goaccess -f /var/www/log/access.log -a | tee它在命令行上完美地运行(为access.log生成HTML ),但是当我通过GoAccess作为一个CGI运行它时,输出不是我期望的GoAccess web分析器的HTML,而是:
GoAccess - 0.7
Usage: goaccess -f log_file [-c][-r][-m][-h][-q][-d][...]
The following options can also be supplied to the command:
-f - Path to input log file.
<snipped>这就好像它在运行没有任何参数的goaccess。或者,或者我在我的Bash中指定的参数由于任何原因没有被看到。
我快疯了。有谁有CGI的经验可以帮助吗?
发布于 2014-02-14 20:15:16
显然,如果您使用-f指定日志文件,就会进行检查,查看stdin是否是一个交互式tty,如果不是,程序就存在。来自goaccess.c .c(0.7版第792行):
if (conf.ifile != NULL && !isatty (STDIN_FILENO))
cmd_help ();使用cat通过管道发送日志文件确实有效,但我还需要指定可以在何处找到配置文件:
cat /var/www/log/access.log | goaccess -p /home/brm/.goaccessrc -ahttps://unix.stackexchange.com/questions/115248
复制相似问题