#!/bin/bash
#author:
#取出nginx五分钟内的日志
#Nginx日志格式:
#if [ -z $1 ];then
#echo “请在脚本后面加上日志文件!!”
#exit 1
#fi
#日志文件
logfile=/var/log/nginx/access.log
#logfile=
#开始时间
#start_time=date -d"$last_minutes minutes ago" +"%H:%M:%S"
start_time=date -d"5 minutes ago" +"%H:%M:%S"
#start_time=”14:29:20″
#结束时间
stop_time=date +"%H:%M:%S"
#stop_time=”14:35:36″
#tac $logfile | awk -v st=”$start_time” -v et=”$stop_time”
tac $logfile | awk -v st=”$start_time” -v et=”$stop_time” ‘
BEGIN{
# print “\n——————————-“;
# print “开始时间:”st;
# print “结束时间:”et;
# print “在这个时间段(1分钟内)的日志如下:”
# print “———————————\n”
}
{
#第4列的时间数据,然后按:冒号进行分割出时间
#split($4,i,”:”);
#组合时间 例: 14:37:49
#t=sprintf(“%s:%s:%s”,i[2],i[3],i[4]);
#第4列的时间数据,取出时:分:秒
t=substr($4,RSTART+14,21);
#判断在st与et之间的时间
if(t>=st && t<=et)
{print $0}
}
END{
print “\n”
}
‘>/etc/zabbix/nginxip.txt
cat /etc/zabbix/nginxip.txt |cut -d ‘ ‘ -f 1 |sort |uniq -c | sort -nr | awk ‘{print $0 }’ | head -n 10 >/etc/zabbix/nginx3.txt
cat /etc/zabbix/nginx3.txt | head -1 | awk ‘{print $1}