我正在使用以下php代码:
<?php
exec ("awk -F'|' -vOFS='|' '(NR==FNR){a[$1]=$0; next}{if(a[$1]){print $2,a[$1]}}' /var/log/apache2/forensic_log.log /var/log/apache2/access.log | cut -d'|' -f1,3- > i/content/other/LOG_FILE.log");
?>
它与日志文件比较,如果日志ID匹配,则串联内容并将其输出到LOG_FILE.log。结果,我应该在LOG_FILE.log
中有类似的内容[14/May/2018:06:37:07 +0300]|HEAD /favicon.ico HTTP/1.0|Host:host.com|Connection:close
这段代码可以正常工作很长时间,但是现在看来它在某个地方失败了,因为LOG_FILE.log为空。
添加简化代码:
<?php
$output=exec("awk -F'|' -vOFS='|' '(NR==FNR){a[$1]=$0; next}{if(a[$1]){print $2,a[$1]}}' /var/log/apache2/forensic_log.log /var/log/apache2/access.log");
echo $output;
?>
此代码不回显任何内容。
对于这样麻烦的问题,我感到抱歉,但是我不是代码的作者,也不熟悉PHP,但是我仍然必须以某种方式来解决这个问题。
答案 0 :(得分:0)
我终于找到了问题的原因并解决了。该问题与“ awk”命令无关,对此感到抱歉。问题在于Apache日志文件的权限,一旦我修复它,原始代码就会开始产生预期的输出。
感谢大家的建议。