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\n";
    }
?>

 还可以使用命令行:

可以结合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

 

posted @ 2014-05-08 16:12  ifeixiang  阅读(843)  评论(0编辑  收藏  举报