通过对Nginx访问日志进行分析即可。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | #!/bin/bash function define() { ori_log_path= "/var/log/nginx/abc.access.log" tmp_log_path= "/var/log/nginx/5min_abc.access.log" date_stamp=` date -d "-5min" +%Y:%H:%M:%S` day_stamp=` date +%d` } function gather() { awk -F '[/ "\[]' -vnstamp="$date_stamp " -vdstamp=" $day_stamp" '$7>=nstamp && $5==dstamp' ${ori_log_path} > ${tmp_log_path} log_num=` cat ${tmp_log_path} | wc -l` request_time=` awk '{print $(NF-1)}' ${tmp_log_path} | awk '{sum+=$1}END{print sum}' ` ave_request_time=` echo | awk "{print ${request_time}/${log_num}}" ` rm -f /var/log/nginx/5min_abc .access.log } function output() { echo "abc aver request time is ${ave_request_time}" echo "abc request total is ${log_num}" } function main() { define gather output } main |
脚本很简单,今天需要用,就写出来记录在这里了。就是锁定最近5分钟的访问日志,通过整理其内容,获取到日志条目数和相应时间的总数,计算即可。
我这里的日志格式,倒数第二列是相应时间。
本文出自 “菜鸟东” 博客,请务必保留此出处http://radish.blog.51cto.com/5944322/1732229