使用php写的,方便点
<?php // 定义全局参数 $date = date("Ymd"); $day = date("d", strtotime('-1 day')); $month = date("M"); $year = date("Y"); $LOG = "nginx_{$date}.log"; $HTML = "nginx_{$date}.html"; // 先生成当天的nginx日志文件 $cmd = "sed -n '/{$day}/{$month}/{$year}/ p' /var/log/nginx/log/host.access.log > $LOG"; `$cmd`; _debug($cmd); // 再使用goaccess生成网页 $cmd = "/usr/local/bin/goaccess -f $LOG -a > /yfdata/mobile/$HTML"; `$cmd`; _debug($cmd); _debug("success"); function _debug($msg) { echo "$msg "; } ?>
还可以使用命令行:
可以结合sed等工具
sed -n '/05/Dec/2010/,$ p' access.log | goaccess -a
日期段:
sed -n '/5/Nov/2010/,/5/Dec/2010/ p' access.log | goaccess -a
这样似乎不能直接输出文件,曲线救国:
sed -n '/8/Apr/2014/,$ p' /var/log/nginx/log/host.access.log > log.log
goaccess -f log.log -a > /yfdata/mobile/nginx_20140508.html