1 nginx日志截取示例

  日志路径:/usr/local/nginx/logs, 截取access.log中2019年3月24日17点00~02之间的日志:

  写法1:

cat access.log | awk '$4 >="[24/Mar/2019:17:00:00" && $4 <="[24/Mar/2019:17:02:00"'

  写法2:

cat access.log | egrep "24/Mar/2019" | awk -F':' '$2 = 17 && $3 >= 00 && $3 <= 02'

  写法3:

cat access.log |egrep "24/Mar/2019" |sed -n '/17:00:00/,/17:02:00/p'

2 tomcat日志截取示例

  日志路径:/usr/local/tomcat/logs, 截取catalina.out中2019年3月24日17点00~02之间的日志:

  写法1:

sed -n '/2019-03-24 17:00:/,/2019-03-24 17:02:/p'  catalina.out

  写法2:

cat catalina.out| egrep "2019-03-24" | awk -F':' '$2 = 17 && $3 >= 00 && $3 <= 02'

3 awk统计nginx日志的ip访问量

  nginx日志事先截取一部分:tail -n500 access.log >access.log1

  第一种:使用awk sort,$1表示以空格为分割符的第一列,也就是文件中的ip地址,使用sort对结果排序,uniq -c进行计数,最后sort -n是以“数字”来排序,针对统计后的访问次数来排序

awk '{print $1}' access.log1|sort |uniq -c|sort -n
1 113.111.9.152
1 203.208.60.22
1 66.85.6.225
2 121.32.197.253
2 121.69.66.226
2 123.132.237.10
2 218.75.223.169
2 58.216.212.226
2 58.246.39.218
2 59.110.50.24
4 223.223.203.106
6 111.193.230.31
8 180.170.208.189
11 121.249.192.131
12 218.89.241.229
12 222.65.85.75
17 202.106.149.226
22 39.107.204.192
24 111.160.58.154
81 1.202.225.46
101 47.75.230.56
185 39.155.239.138

  第二种:awk for,即数组; 默认变量为0,对每一行的$1作为key,count数组++,实现ip的计数。计数结束后END。然后把结果打印出来,最后sort -n以“数字”排序。

awk '{count[$1]++;}END{for(i in count){printf("%s\t%s\n", count[i], i);}}' access.log1|sort -n
1 113.111.9.152
1 203.208.60.22
1 66.85.6.225
2 121.32.197.253
2 121.69.66.226
2 123.132.237.10
2 218.75.223.169
2 58.216.212.226
2 58.246.39.218
2 59.110.50.24
4 223.223.203.106
6 111.193.230.31
8 180.170.208.189
11 121.249.192.131
12 218.89.241.229
12 222.65.85.75
17 202.106.149.226
22 39.107.204.192
24 111.160.58.154
81 1.202.225.46
101 47.75.230.56
185 39.155.239.138

  补充:如果是倒序,需要加上-r(以相反的顺序来排序),-k(选择以哪个区间进行排序), 如统计nginx日志里访问次数最多的前10个IP

awk '{print $1}' access.log1|sort |uniq -c|sort -nr -k1 |head -n 10
185 39.155.239.138
101 47.75.230.56
81 1.202.225.46
24 111.160.58.154
22 39.107.204.192
17 202.106.149.226
12 222.65.85.75
12 218.89.241.229
11 121.249.192.131
8 180.170.208.189

  这里不加-k也是默认...

4 取nginx日志访问接口次数

  通过上面的方法将某个时间段日志取出来,查询该时间段访问接口最多的前10:

cat tongji.sh
#!/bin/bash
#统计接口的访问次数
TODAY=`date +%d/%b/%Y`
cat $1 |awk -F '"' '{print $2}'|awk '{split($2,res,"?") ; print res[1] }'|sort|uniq -c|sort -gr |head -n10

  

  可以根据适当需求调整参数

awk和sed截取nginx和tomcat时间段日志的更多相关文章

  1. awk 截取某段时间的日志

    好久没有截取nginx/haproxy 中 的日志了,竟有点不熟悉了. 记录一下,以免以后忘记. NGINX 日志格式: 192.168.1.26 - - [14/Sep/2017:16:48:42 ...

  2. CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法

    CentOS7之按时间段截取指定的Tomcat日志到指定文件的方法 sed -n '/2016-11-02 15:00:/,/2016-11-02 15:05:/p' catalina.out > ...

  3. jpress-配合nginx与tomcat安装

    目录 1. 前言 2. yum安装tomcat 2. yum安装MySQL 3. 下载JPress并安装 4. 配置tomcat使其可以部署多个网站 5. 安装nginx并配置 6. 将已经安装好的j ...

  4. 截取nginx日志

    截取nginx日志 sed -n '/24\/Feb\/2017:11:00:00/,/24\/Feb\/2017:12:00:00/p' yunying_api.wanglibao.com.acce ...

  5. Windows Server 2008 R2 Enterprise x64 部署 nginx、tomcat、mysql

    部署nginx nginx主要做反向代理用,可以单独部署到其它机器上,这里nginx和tomcat部署在同一台机器上. 下载nginx-1.14.1.zip,并解压到目标目录,打开cmd进入到解压后的 ...

  6. Nginx 与Tomcat 实现动静态分离、负载均衡

    Nginx 与Tomcat 实现动静态分离.负载均衡 一.Nginx简介: Nginx一个高性能的HTTP和反向代理服务器, 具有很高的稳定性和支持热部署.模块扩展也很容易.当遇到访问的峰值,或者有人 ...

  7. Web服务(Apache、Nginx、Tomcat、Jetty)与应用(LAMP、CMS-WordPress&Ghost、Jenkins、Gitlab)

    Web服务和应用是目前信息技术领域的热门技术.如何使用Docker来运行常见的Web服务器(包括Apache.Nginx.Tomcat等),以及一些常用应用(LAMP.CMS等).包括具体的镜像构建方 ...

  8. nginx代理tomcat

    http://blog.csdn.net/kongqz/article/details/6838989 http://www.800l.com/linux-nginx-tomcat-jdk.html ...

  9. nginx和Tomcat集成后发生的重定向问题分析和解决

    nginx和Tomcat集成后发生的重定向问题分析和解决 Tomcat前端配置一个HTTP服务器应该是大部分应用的标配了,基本思路就是所有动态请求都反向代理给后端的Tomcat,HTTP服务器来处 理 ...

随机推荐

  1. SpringBoot搭建

    使用eclipse搭建项目 File>New> 点击下一步 填写相关信息,点击下一步 勾选需要的组件,点击下一步. 会生成一个项目,如下图 打开pom.xml文件 <?xml ver ...

  2. Pycharm 常用快捷键

    常用快捷键 快捷键 功能 Ctrl + Q 快速查看文档 Ctrl + F1 显示错误描述或警告信息 Ctrl + / 行注释(可选中多行) Ctrl + Alt + L 代码格式化 Ctrl + A ...

  3. Linux:Day17(下) openssl

    Linux Services and Security OpenSSL OpenSSH dns:bind web:http,httpd(apache),php,mariadb(mysql) lamp ...

  4. pytorch的函数中的group参数的作用

    1.当设置group=1时: conv = nn.Conv2d(in_channels=, out_channels=, kernel_size=, groups=) conv.weight.data ...

  5. libgdx学习记录2——文字显示BitmapFont

    libgdx对中文支持不是太好,主要通过Hireo和ttf字库两种方式实现.本文简单介绍最基本的bitmapfont的用法. 代码如下: package com.fxb.newtest; import ...

  6. echarts 配置

    堆叠柱状图, 只要保证 stack 属性相同,就强制画成一列 这就是切割线

  7. linux下下载安装jdk

    jdk的安装 一:到oracl官网下载你所需要的jdk版本; https://www.oracle.com/technetwork/java/javase/downloads/index.html 拉 ...

  8. C: printf参数执行顺序与前置后置自增自减的影响

    起源: 今天在了解副作用side-effect的过程中,看到了下面的网页,把我带到了由printf引起的一系列问题,纠结了一整天,勉强弄懂. 第一个代码没什么好解释的.而第二个printf(" ...

  9. Django使用models建表的一些另类功能

    当我们对某个表需要在创建时,给他绑定一个随机的id,那么我们怎么做呢? 当创建一个用户时执行的为save方法,所以通过下面的 super(UserInfo, self).save(*args, **k ...

  10. MySQL中的用户与授权

    grant all on *.* to root@'192.168.20.49'; grant select on *.* to root@192.168.20.49 ; -- dba 可以查询 My ...