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. leetcode题解-122买卖股票的最佳时期

    题目 leetcode题解-122.买卖股票的最佳时机:https://www.yanbinghu.com/2019/03/14/30893.html 题目详情 给定一个数组,它的第 i 个元素是一支 ...

  2. Node.js如何执行cmd

    最近正好因业务的一个需求需要研究如何根据vscode的插件名来下载对应的插件以解决之前将插件打包上传到服务器上面导致的延迟问题(插件体积小还好说,如果体积过大,即便是压缩打成zip包,如果同一时刻很多 ...

  3. 【alpha阶段】第九次Scrum Meeting

    每日任务内容 队员 昨日完成任务 明日要完成的任务 牛宇航 #26 评价总览接口编写https://github.com/rRetr0Git/rateMyCourse/issues/26 #26 评价 ...

  4. 菜鸟学IT之python网页爬取初体验

    作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2881 1. 简单说明爬虫原理 爬虫简单来说就是通过程序模拟浏览器放松请求站 ...

  5. Windows服务器上使用phpstudy部署PHP程序

    一.下载并安装PHPStudy 官网地址:http://phpstudy.php.cn/(安装包下载地址:链接:https://pan.baidu.com/s/1WOmbOwmLuUPt3_nmY6- ...

  6. SpringBoot+Redis整合

    SpringBoot+Redis整合 1.在pom.xml添加Redis依赖 <!--整合Redis--> <dependency> <groupId>org.sp ...

  7. java程序高CPU,如何直接定位(linux系统下命令行操作)

    1.top命令找出 2.也可以使用 (1)ps -ef|grep java|grep -v grep (2)jps -l|grep  公司名 然后,记住PID是9529. 3.定位具体的线程或者代码: ...

  8. redis常见问题

    1.redis满了,怎么处理? (1)内存淘汰策略(2)集群,动态增加redis服务器(推荐) 2.val比较大时(比如50MB),会有什么影响? 因为redis是单线程,多路IO复用的,所以当一个v ...

  9. plus webview关闭事件监听

    plus.webview.currentWebview().addEventListener("close",function(){ },false);

  10. react-native-echarts在打包时出现的坑

    react-native-echarts目前是RN开发中使用echarts图表最好的插件了,用法与Echarts完全一致,默认提供了三个属性: option (object): The option ...