一般的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  ∶列印,亦即将某个选择的资料印出。通常 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. layui——上传图片,并实现放大预览

    一般上传文件后会返回文件的路径,然后存储到数据库,那么首先实现上传后的放大和删除功能 function uploadSmallPic() { var upload = layui.upload; up ...

  2. 撩课-Java每天5道面试题第25天

    156.mvc:view-controller有什么作用? 当我们发送一个请求时,如果没有找到对应的mapping 则会对配置文件当中匹配mvc:view-controller 注意点:使用时要添加后 ...

  3. 微信小程序button选中改样式-实现单选/多选

    小程序实现多button单选/多选 红色为选中状态 单选 多选 ①wxss /* pages/button-select/button-select.wxss */ .button_container ...

  4. 设置centos7.3的YUM源为国内阿里云源

     CentOS系统更换软件安装源 第一步:备份你的原镜像文件,以免出错后可以恢复. mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/Cent ...

  5. fuzhou 1692 Key problem ***

    Problem 1692 Key problem Accept: 103    Submit: 553 Time Limit: 1000 mSec    Memory Limit : 32768 KB ...

  6. Java NIO文章列表(强烈推荐 转)

    IO流学习总结 一 Java IO,硬骨头也能变软 二 java IO体系的学习总结 三 Java IO面试题 NIO与AIO学习总结 一 Java NIO 概览 二 Java NIO 之 Buffe ...

  7. 不得不知的npm常用指令

    前端进阶肯定会遇到npm(包管理工具)的使用,下面是我总结的一些比较实用的npm指令: npm install <name>安装nodejs的依赖包 例如npm install expre ...

  8. luogu P3065 first——trie树相关

    题目描述 Bessie has been playing with strings again. She found that by changing the order of the alphabe ...

  9. mysql中LOCATE和CASE WHEN...THEN...ELSE...END结合用法

    之前项目中需要写一个sql,就是查出某个调研详情中,选A答案,B答案,C答案...F答案的人各有多少人,这个sql也是费了很大的力气才写出来,故记下来,方便以后使用. 其中tbl_research_i ...

  10. javascript 获取服务时间

    用到了jquery的ajax方法,ajax自己写也可以. 具体用法 var setId = setInterval(function(){ var xhr = $.ajax({ type: 'HEAD ...