使用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