通过对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
转载于:https://blog.51cto.com/lucifer119/1732669