提取日志中出现的userId或其他信息
项目上线后经常出现需要统计用户数据、接口请求等。完美的情况下,在项目开始前就设计好哪些request、中间过程需要落地到db、或以一定格式存入专门的log中,但也常需要同学们临时去业务日志中grep
大致分为三步:找到包含数据的行、提取出行中需要的数据、输出到文件并提取到本地
实践中用到的一种方式:
zcat /home/机器中的日志路径/logs/finscore.log.gz | grep 'TaskController.queryTaskListApi(..)的请求参数为' | awk -F\' '{print $}' > machine1_userId_2017-09-04.log
用到的命令:
- zcat:就是查看压缩文件的内容,如果日志未压缩,直接cat也行
- grep:找到包含数据的行
- awk:用法为 awk -F分隔字符 操作,比如awk -F: '{print $2}' 代表将当前数据按照英文冒号进行分割,并将分割后的第二段中的内容输出。需要注意分隔字符的转义。如果不写-F,默认会用空格作为分隔符
如果是ssh登录的线上机器,拷贝到本地,还需要在本地这样做:
scp 线上机器地址:machine1_userId_2017--.log /Users/micheal/temp/machine1_userId_2017--.log
scp是有Security的文件copy,基于ssh登录。操作起来比较方便,敲完命令后会提示输入那台机器的登录密码,接着就开始copy了
对于提取数据中的精髓:提取,除了awk还有很多方法,比如可以用cut:
cat userId_2017--04.log | cut -d \" -f 8 > userId_new_2017-09-04.log
cut命令:
- -d:分隔符,和awk的-F一样
- -f:分割后取第几段内容,如果要取多段:可以写 -f2-4,从第二段取到结尾:-f2-,从头取到第四段:-f-4;取第一段和第三段:-f1,3,随意组合(上文中awk中使用的print也有类似的语法,可以随意组合)
如果为多台机器,可以配合可分屏的terminal:
mac下推荐iTerm2:http://www.iterm2.com/,打开终端后分屏,然后广播output即可
linux:直接sudo apt-get install terminator
提取日志中出现的userId或其他信息的更多相关文章
- 提取日志中的json请求发送到另外一台机器
将日志中的json请求提取,并且发送到另外一个机器上: for i in ` cat impression.log.2016-04-08-10 |awk -F"\t" ' {pri ...
- 从输出日志中提取接口的入参和返回做为用例导入到excel中
1 背景 接口用例已经在项目中的yml文件中编写,但是yml文件不能做为交付文档用,本文对工作中从接口输出日志中提取用例信息,并导入到excel文件中做了总些 2 工具 idea,notepad+ ...
- linux服务端日志中截取自己所需要的部分
近期开发一个图片处理的业务,涉及base64字符串解析的问题,为方便与友商间接口调试,日志中保存Base64.日,想想就肝儿疼,记录下来容易,取的时候难.为准确提取,配合两条命令即可. 1.获取日志所 ...
- Python统计日志中每个IP出现次数
介绍了Python统计日志中每个IP出现次数的方法,实例分析了Python基于正则表达式解析日志文件的相关技巧,需要的朋友可以参考下 本脚本可用于多种日志类型 #-*- coding:utf-8 -* ...
- 本地多张图片采用jmeter上传到ftp服务器的方法和获取服务器日志中某些关键字的基本方法
测试需求: 本地图片上传到ftp服务器里和另外两台不同算法比对服务器进行比对,得出漏检和误检结果:这实际属于功能测试范畴. 测试思路: 第一种方法:使用实际场景的摄像机抓拍图片上传到服务器,用录屏软件 ...
- 在linux中使用shell来分析统计日志中的信息
在运维工作中,要经常分析后台系统的日志,通过抓取日志中的关键字信息,对抓取结果进行统计,从而为监控结果提供基础数据.下面的shell演示了如何从大量的日志中取得想要的统计结果.其中展示了各种有趣的命令 ...
- 统计日志中ip出现的次数
grep -r 'GET /weixin/weixin_izp/index.html' ./chunyun.access.log > ~/access.log cat access.log |a ...
- 使用Java Stream,提取集合中的某一列/按条件过滤集合/求和/最大值/最小值/平均值
不得不说,使用Java Stream操作集合实在是太好用了,不过最近在观察生产环境错误日志时,发现偶尔会出现以下2个异常: java.lang.NullPointerException java.ut ...
- ES & Filebeat 使用 Pipeline 处理日志中的 @timestamp
使用 Pipeline 处理日志中的 @timestamp Filebeat 收集的日志发送到 ElasticSearch 后,会默认添加一个 @timestamp 字段作为时间戳用于检索,而日志中的 ...
随机推荐
- BZOJ 2173 luoguo P4451 [国家集训队]整数的lqp拆分
整数的lqp拆分 [问题描述] lqp在为出题而烦恼,他完全没有头绪,好烦啊… 他首先想到了整数拆分.整数拆分是个很有趣的问题.给你一个正整数N,对于N的一个整数拆分就是满足任意m>0,a1 , ...
- Oracle创建pfile spfile 文件及其恢复
1.Oralce在启动实例的时读取$ORACLE_HOME/dbs下面的初始化文件.初始化文件分为:A.静态参数文件PFILE,一般名为initSID.oraB.永久参数文件SPFILE,一般名为sp ...
- git 修改客户端用户名和密码
1.修改某个具体项目中的用户名密码 vim xx/{yourProject dir }/.git/.git-credentials 在.git-credentials文件中配置用户名密码 https: ...
- leetcode78
本题是回溯法的基本应用,深度优先遍历,使用递归实现. class Solution { public: ]; vector<vector<int>> R; int n; //t ...
- fastJson注解@JSONField使用的一个实例
1.实体类 package jsonArrayjsonObject.cn; import java.io.Serializable; import java.util.Date; import com ...
- EntityFrameworkCore DBFirst
需要引用如下nuget包 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer Microsoft.EntityF ...
- MFC笔记3
1. C6有默认的提示代码功能,但是其默认的快捷键是Ctrl + Space,这一般情况下是切换输入法快捷键,所以,只需重新设置一下快捷键就可以实现提示代码功能,具体设置位置如下: 工具(T) -&g ...
- Codeforces Round #438 A. Bark to Unlock
题意:给你一个原串和n个子串,问你这n个子串任意组合起来能不能使原串出现,串的长度为2. Examples Input ya4ahoytoha Output YES Input hp2http Out ...
- CSS3实现投影效果
Webkit引擎定义了-webkit-box-reflect属性,该属性能够实现投影效果,具体语法如下: -webkit-box-reflect: <direction> <offs ...
- ASP.NET Boilerplate-AbpSession
/------2016-05-15/------介绍 如果一个应用支持登录,也许需要知道当前登录用户的一些操作,然而ASP.NET 本身对于展现层提供了Session的支持,ABP提供了 IAbpSe ...