goaccess生成nginx每日访问纪录

使用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
原文地址:https://www.cnblogs.com/trying/p/3716425.html