#!/bin/bash
#使用前请先创建一个路径文件夹/tmp/weblog
#确定当前时间,即脚本执行日的0时
time=`date "+%y%m%d:%H"`
#定位日志时间格式为:20140624:00
date1="20$time"
#记录循环次数变量count
count=0
#开启死循环,每小时筛选一次日志,并输出
while :;do
#获取当前时间,作为每次循环的1小时日志名
n=`date`
#等待日志输出3600,即1小时
sleep 3600
#获取1小时后,此时日志的末行
date2=`tail -1 log`
#用sed获取此次循环中,这个1小时日志的两端数据,以便于获取到1小时的日志区间
sed -n '/'"$date1"'/,/'"$date2"'/p' log > /tmp/weblog/$n.log
#用awk将这个1小时的日志进行格式化,并输出到一天的日志webc.log
awk 'BEGIN{printf "%-10s %-10s
","time","avg_time"}$NF ~ /^[0-9]/{sum+=$NF;n++}END{if(n != 0)printf "%-10s %-10s
", sum,sum/n}' $n.log >> /tmp/weblog/webc.log
#将本次循环的1小时末端数据作为下次循环的开端数据
date1=$date2
#循环次数+1
count=$[ $count+1 ]
#若次数为24,说明一天结束,将webc.log改名为当天日期名,并放到/home下
[ $count -eq 24 ] && mv /tmp/weblog/webc.log /home/web_`date +F`.log && count=0
done