首页 > 代码库 > 一个日志按照小时的格式化输出脚本
一个日志按照小时的格式化输出脚本
#!/bin/bash#使用前请先创建一个路径文件夹/tmp/weblog#确定当前时间,即脚本执行日的0时time=`date "+%y%m%d:%H"`#定位日志时间格式为:20140624:00date1="20$time"#开启死循环,每小时筛选一次日志,并输出while :;do#获取当前时间,作为每次循环的1小时日志名 n=`date`#记录循环次数变量count count=0#等待日志输出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\n","time","avg_time"}$NF ~ /^[0-9]/{sum+=$NF;n++}END{printf "%-10s %-10s\n", 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 done
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。