使用shell命令分析统计日志

需要统计用户日志信息,分析出用户行为时,用shell往往能方便地取出很多数据,取出后再放置到excel中统计。

例如:统计日志中含loadCustomProcess这个地址的访问,按访问耗时排序:

grep "loadCustomProcess" /home/workflow/socket.txt | awk -F " " ‘{print $11}‘|awk -F ":" ‘{print $2}‘|sort -nr

查询出现“INFO",出现量前10的记录:

grep "INFO" /usr/share/tomcat6/logs/flowplatform.log| awk -F " " ‘{print $8}‘|sort |uniq -c|sort -nr

解析:

grep "loadCustomProcess" /home/workflow/socket.txt 找出文件/home/workflow/socket.txt中包含loadCustomProcess的行

uniq -c:统计连续出现的次数(注意是连续),因此在uniq -c前需先用sort才能有sql中count的效果

awk SQL语句中的SELECT字段,“-F " "”表示按照空格对每行数据进行分隔,得到的每个单元就是一个字段,而“$7”就是第七个字段

sort 把结果排序,为后面的汇总做准备,

sort -nr  是按照数值大小倒序排列,相当于SQL中的ORDER BY ... DESC,

head -10  取前十条

时间: 2024-10-14 09:53:56

使用shell命令分析统计日志的相关文章

shell脚本分析apache日志状态码

一.首先将apache日志按天切割 vi /etc/httpd/conf/httpd.confErrorLog "|rotatelogs /var/log/httpd/%Y%m%derror_log 86400 480″CustomLog "|rotatelogs /var/log/httpd/%Y%m%daccess_log 86400 480″ combined 二.重启apache服 service httpd restart ##################apahce日志

Linux History安全问题【保存记录防止删除】+完善Linux/UNIX审计 将每个shell命令记入日志

2011-09-27 22:11:51|  分类: rhel5_033|举报|字号 订阅 Linux利用PROMPT_COMMAND实现审计功能 这个系统审计,记录什么用户,在什么时间,做了什么操作. 然后将查到的信息记录到一个文件里. 一. 配置 1. 在/etc/profile 文件的最后,添加如下2行代码: export HISTORY_FILE=/var/log/`date ‘+%Y%m’`.log export PROMPT_COMMAND=’{ date “+%Y-%m-%d %T

[linux] shell脚本编程-统计日志文件中的设备号发通知邮件

1.日志文件列表 比如:/data1/logs/2019/08/15/ 10.1.1.1.log.gz 10.1.1.2.log.gz 2.统计日志中的某关键字shell脚本 zcat *.gz|grep 关键字 |grep -oP "deviceid=[^=]+"|uniq|sort -u > /tmp/20190815.log date 格式化出年月等信息,拼接成路径 wc -l /tmp/20190815.log , 获取到行数 php /xxxxx/sendmail.ph

shell脚本分析nginx日志

第一版,比较粗糙,仅限于能用 正在写入的文件不能用tar进行压缩 --------压缩日志---------------------- 94 access.log 95 tar: access.log: file changed as we read it 96 #### 压缩日志失败 #### #!/bin/sh #分析nginx日志 DATE=`date '+%Y%m%d-%H%M'` ARCHIVE=/usr/log_bak/nginx_$DATE.tar.gz MESSAGE=/usr/

shell 脚本分析Nginx 日志

本脚本分析Nginx 负载均衡器的日志: #!/bin/bash if [ $# -eq 0 ]; then     echo "Error:please specify logfile."     exit 0 else     LOG=$1 fi if [ ! -f $1 ]; then     echo "Sorry,sir. I cat't find this apache log file, pls try again!"     exit 0 fi ##

linux_一些shell命令分析记录

一.用于shell脚本的界面命令交互 echo "请输入css-dist下载地址:" read addcss echo "开始下载css的zip包"( wget $addcss ) >> /dev/null 上述等价于:( wget http://****************-bin.zip ) >> /dev/null 上述shell 执行结果如下: 进入/usr/update/download目录请输入css-dist下载地址: ht

awk 分析web日志(页面执行时间)

shell脚本分析 nginx日志访问次数最多及最耗时的页面(慢查询) 当服务器压力比较大,跑起来很费力时候.我们经常做站点页面优化,会去查找那些页面访问次数比较多,而且比较费时. 找到那些访问次数高,并且比较耗时的地址,就行相关优化,会取得立竿见影的效果的. 下面是我在做优化时候,经常用到的一段shell 脚本. 这个也可以算是,统计web页面的slowpage 慢访问页面,象mysql slowquery . 以下是我的:nginx 配制 log_format main '$remote_a

shell统计ip访问情况并分析访问日志

有日志 1.log,部分内容如下: 112.111.12.248 – [25/Sep/2013:16:08:31 +0800]formula-x.haotui.com“/seccode.php?update=0.5593110133088248″ 200″http://formula?x.haotui.com/registerbbs.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1;)”61.147.76.51 – [25/S

日志处理中一些shell命令技巧

日志处理中一些shell命令技巧 阴差阳错的做的日志分析,前途未卜的这段日子,唯一还有点意思的可能就是手动的处理大量日志.总结一下. 日志文件的输入是动则几个G的文本.从N个这样的文件中得到一个列表,一个数字,一个比例.在什么工具都没有情况下,用shell命令不仅是验证系统数据的准确性的方法,也是一个很好的学习过程. 使用cut命令切割日志行 下面的一行典型的apache访问日志: 120.51.133.125 - - [26/Apr/2013:12:20:06 +0800] "GET /ski