一般的log文件都是需要过滤

1.grep 过滤查找

查询ip 221.2.100.138的log

grep '221.2.100.138'  web.access.log

grep 221.2.100.138  web.access.log

less web.access.log |grep "221.2.100.138"

统计error行数

grep error web.access.log |wc -l

将error重定向(linux是>python是>>)到文件中

grep error  web.access.log >mylog1.txt

其他常用参数,位置放在前面后面都可以

-i   不区分大小写 grep -i 'HTTP'  web.access.log或者grep  'HTTP' -i web.access.log

-n      输出行号

-c    统计行数

支持正则

2.sed  行筛选

显示第1行

[root@localhost ~]# sed -n '1p' log.log
12.3.4.3 122:33:33:#3 /post/dfdjfk/dff  400

显示第1-3行

[root@localhost ~]# sed -n '1,3p' log.log
12.3.4.3 122:33:33:#3 /post/dfdjfk/dff  400
12.3.4.5.5 343:44:$:444 /get/fd/ddf  error
127.0.0.1 2018:09:01:56 /post/ffdf  200

常用选项:
        -n∶不使用的时候,会把所有数据都显示出来,但如果加上 -n 参数后,只显示经过处理的那几行
        -e∶直接在指令列模式上进行 sed 的动作编辑;
        -f∶直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
        -r∶sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
        -i∶直接修改读取的档案内容,而不是由萤幕输出。

常用命令:
        a   ∶新增, a 的后面可以接字串,而这些字串会在新的一行出现(目前的下一行)~
        c   ∶取代, c 的后面可以接字串,这些字串可以取代 n1,n2 之间的行!
        d   ∶删除,因为是删除啊,所以 d 后面通常不接任何咚咚;
         i   ∶插入, i 的后面可以接字串,而这些字串会在新的一行出现(目前的上一行);
         ∶列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
         s

命令是直接使用,参数是-一起使用

格式:

sed '/模式/' d filename或者sed '/模式d/' filename都可以。删除查询条件为模式的行

eg:删除以#开头的行,并将修改写入文件

sed '/^#/' d -i filename

如果不加-i是显示在屏幕上,这时候可以把结果重定向到文件中

sed '/^#/' d filename>filename_new 覆盖写入w

sed '/^#/' d -i filename>>filename_new追加写入aw

sed -n '/2015:08:39:59/,/2015:08:40:02/' p web.access.log 打印出这个时间段的log,p是打印的意思

sed -n '/2015:08:39:59/,/2015:08:40:02/' web.access.log |awk '{print $4,$5}'

awk分列

语法awk '{print $1}'打印第一列

awk -F : '{print $1}' 以:为分隔符打印出第一列 比如每行的数据格式是aa:bb,执行以后会取到aa,要想这个时候取值aa和bb,执行awk -F :'{print $1,$2}'

awk '{if(表达式){语句}}'

(1)      awk '{print}' 打印所有列

(2)打印第一行的所有数据 awk 'NR==1{print}'

(3)打印第二行第一列       awk 'NR==2{print $1}'

grep '106.39.249.119' web.access.log | awk '{print $1,$2}' 打印出含有106这个ip地址的第一列和第二列

awk  '{if($1=="106.39.241.119"){print $1,$2}}' web.access.log 打印出ip地址是106的第一列和第二列

awk '$1=="106.39.249.119" {print $1,$2}' web.access.log同上

其他组合用法

1.统计wc

统计行数(line)  |wc -l          more filename|wc -l或者wc -l filename

统计单词数(word) |wc -w  

统计字符数  |wc -c (bytes)

2.排序sort 经常与|管道符使用

  |sort -n 按照数字进行排序,不加,会出现1后面是10这种排序

  |sort -nr 反序reverse排序

3.去重uniq

 经常与管道符结合使用|

|uniq -c 将该重复的数据的行数统计出  一般在uniq -c|sort -n使用,因为uniq会把数字统计出来,然后sort -n按照数字进行排序

|uniq -d 只显示重复的行

|uniq -u 只显示不重复的行

 例子:

统计出访问日志中有多少个不同的ip

awk '{print $1}' web.access.log |sort|uniq -c|wc -l

统计访问最高的ip

cat access.log|awk '{print $2}'|uniq -c|sort -nr|head -n 1

或者

cat acess.log|awk '{print $2}'|uniq -c|sort -nr|sed '1p'

字符转换tr,以下转换不会对源文件进行操作

tr '#' '!' 把#全部转换成!

cat a.log |tr 'a-z'  'A-Z'

linux日志log查询常用命令的更多相关文章

  1. Linux基础 - 系统优化及常用命令

    目录 Linux基础系统优化及常用命令 Linux基础系统优化 网卡配置文件详解 ifup,ifdown命令 ifconfig命令 ifup,ifdown命令 ip命令 用户管理与文件权限篇 创建普通 ...

  2. Linux基础系统优化及常用命令

    # Linux基础系统优化及常用命令 [TOC] ## Linux基础系统优化 Linux的网络功能相当强悍,一时之间我们无法了解所有的网络命令,在配置服务器基础环境时,先了解下网络参数设定命令. - ...

  3. Linux文件管理和编辑常用命令

    Linux文件管理和编辑常用命令 mkdir 命令 功能说明 mkdir 命令用于创建一个目录,mkdir是make directory的缩写 格式: mkdir [选项] 目录名 mkdir 命令的 ...

  4. Linux系统管理和维护常用命令

    Linux系统管理和维护常用命令 ls 命令 功能说明 ls 命令显示指定工作目录下的内容,列出工作目录所包含的文件及子目录. 语法结构: ls [选项] [路径或文件] ls 选项及说明 -a 显示 ...

  5. Linux课程---4、Linux目录结构及常用命令(目录结构)

    Linux课程---4.Linux目录结构及常用命令(目录结构) 一.总结 一句话总结: 家目录:./root:root用户的家目录 能执行的程序:./bin:所有用户都能执行的程序:./sbin:只 ...

  6. [转帖]「日常小记」linux中强大且常用命令:find、grep

    「日常小记」linux中强大且常用命令:find.grep https://zhuanlan.zhihu.com/p/74379265 在linux下面工作,有些命令能够大大提高效率.本文就向大家介绍 ...

  7. Linux 文件夹相关常用命令

    Linux 文件夹相关常用命令 查看 ls -la -l 列出详细信息 -a 列出全部,包括.和.. 删除 rm <folder> -rf  -r  就是向下递归,不管有多少级目录,一并删 ...

  8. Linux系统诊断必备技能之二:日志查询常用命令详解

    一.概述 日常运维工作中,排查线上环境问题,少不了去线上查日志.而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能.下面介绍一下日常工作常用到的查看日志命令:tail, ...

  9. Linux 查看日志的时候常用命令总结

    Linux ~ 查看日志的常用命令总结 1.tail -n <行数>,显示文件的尾部n行内容. -f 循环读取,常用于查阅正在改变的日志文件. ① tail   -f  test.log  ...

随机推荐

  1. JAVA基础之——方法直接用类名.的理解

    前言 在java中经常遇到使用classname.method()的方式调用方法,哪些场景需要用到呢,如下: 某些操作不依赖具体实例 某个方法是用频率较高,或者方法本身通用性较强,无需初始化类成员变量 ...

  2. java poi处理新版xlsx后缀的excel

    jar包下载地址http://poi.apache.org/download.html#POI-3.17,我把下载文件中的所有jar包都导入项目中才能跑 参考以下博客 https://www.cnbl ...

  3. linux服务器上部署jdk+tomcat+rocketmq+redis-cluster

    通常我们拿到一组干净的linux服务器,需要初始化安装一些基础软件,这里一站式介绍部署jdk+tomcat+rocketmq+redis-cluster 前言:如果要在多台服务器上安装,在一台服务器上 ...

  4. 谈缓存和Redis

    自从上次分享<Redis到底该如何利用?>已经有1年多了,这1年经历了不少.从码了我们网站的第一行开始到现在,我们的缓存模块也不断在升级,这之中确实略有心得,最近也有朋友探讨缓存,觉得可以 ...

  5. 【转载】MySQL数据库可以用任意ip连接访问的方法

    通过CMD命令行修改数据库表的一个字段的值,实现连接,访问. 第一步.找到MYSQL软件安装所在的bin目录: (1)cd\当前目录 (2)指定MYSQL安装的bin目录 (3)输入 -h local ...

  6. java中的>>>和>>>=

    “>>>”运算符所作的是无符号的位移处理,它不会将所处理的值的最高位视为正负符号,所以作位移处理时,会直接在空出的高位填入0.当我们要作位移的原始值并非代表数值时(例如:表示颜色图素 ...

  7. AngularJS+RequireJs实现动态加载JS和页面的方案研究【下】

    about.js: [html] view plain copy 在CODE上查看代码片派生到我的代码片 define(['app'], function(app) { app.controller( ...

  8. 移动端App开发 - 02 - iPhone/iPad/Android UI尺寸规范

    移动端app开发 - iPhone/iPad/Android UI尺寸规范 本笔记抛去无用的前期分析什么的,全是干货,简洁干练 本笔记不单独针对 ios 或者 Android,两种都介绍,当然我们实际 ...

  9. java 反射和泛型

    反射 在计算机科学中,反射是指计算机程序在运行时(Run time)可以访问.检测和修改它本身状态或行为的一种能力.[1]用比喻来说,反射就是程序在运行的时候能够“观察”并且修改自己的行为. 要注意术 ...

  10. Spring Boot框架搭建

    用idea搭建Springboot还是很方便的 环境变量是JDK1.8 SpringBoot自带了Tomcat启动也很方便 1.创建项目 2. 3.选择SpringBoot的版本以及组件 4.创建完成 ...