数据分析对于网站运营人员是个非常重要的技能,日志分析是其中的一个。日志分析可以用专门的工具进行分析,也可以用原生的shell脚本执行,下面就随ytkah看看shell分析日志常用指令有哪些吧。(log_file表示所在路径,完整的路径像这样:/www/var/***.log)

  1、查看当天有多少个IP访问:

  1. awk '{print $1}' log_file|sort|uniq|wc -l

  2、查看某一个页面被访问的次数:

  1. grep "/index.php" log_file | wc -l

  3、查看每一个IP访问了多少个页面:

  1. awk '{++S[$1]} END {for (a in S) print a,S[a]}' log_file

  4、将每个IP访问的页面数进行从小到大排序:

  1. awk '{++S[$1]} END {for (a in S) print S[a],a}' log_file | sort -n

  5、查看某一个IP访问了哪些页面:

  1. grep ^111.111.111.111 log_file| awk '{print $1,$7}'

  6、去掉搜索引擎统计当天的页面:

  1. awk '{print $12,$1}' log_file | grep ^\"Mozilla | awk '{print $2}' |sort | uniq | wc -l

  7、查看2018年11月21日14时这一个小时内有多少IP访问:

  1. awk '{print $4,$1}' log_file | grep 21/Nov/2018:14 | awk '{print $2}'| sort | uniq | wc -l

  8、列出当天访问次数最多的IP

  1. cut -d- -f 1 log_file |uniq -c | sort -rn | head -20

  原理

  1.        cut
  2.  
  3.        -d, --delimiter=DELIM
  4.  
  5.               use DELIM instead of TAB for field delimiter
  6.  
  7.               表示用-分割,然后-f 1
  8.  
  9.        -f, --fields=LIST
  10.  
  11.               select only these fields;  also print any line that contains  no
  12.  
  13.               delimiter character, unless the -s option is specified
  14.  
  15.            表示打印第一部分,就是ip
  16.  
  17.  uniq 是将重复行去掉, -c表示前面前面加上数目,
  18.  
  19.        sort -rn 就是按照数字从大到小排序,
  20.  
  21.        head -20取前面20

  

  你可能会喜欢:shell日志分析进阶篇

shell分析日志常用指令合集的更多相关文章

  1. PBS常用指令合集

    以下以任务名 job.pbs对应任务ID 12341234为代表,提交者用户名为user. 1.基本指令-最常用 提交作业 qsub job.pbs 查询全部作业 qstat 查询个人作业 qstat ...

  2. 使用代码管理工具(git)管理代码的常用指令合集

    create a new repository on the command line echo "# test" >> README.md git init git ...

  3. 【转】Ubuntu常用软件合集

    [转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...

  4. Linux常用命令合集

    常用命令合集 命令选项和参数 Linux中的命令格式为:command [options] [arguments]  //中括号表示可选的,即有些命令不需要选项也不需要参数,但有的命令在运行时需要多个 ...

  5. 【转】Reflector、reflexil、De4Dot、IL相关操作指令合集

    PS:CTRL+F 输入你需要的内容,可以快速查找页面上的内容. 名称 说明 Add 将两个值相加并将结果推送到计算堆栈上. Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上. ...

  6. es6常用基础合集

    es6常用基础合集 在实际开发中,ES6已经非常普及了.掌握ES6的知识变成了一种必须.尽管我们在使用时仍然需要经过babel编译. ES6彻底改变了前端的编码风格,可以说对于前端的影响非常巨大.值得 ...

  7. git常用代码合集

    git常用代码合集 1. Git init:初始化一个仓库 2. Git add 文件名称:添加文件到Git暂存区 3. Git commit -m “message”:将Git暂存区的代码提交到Gi ...

  8. C# 常用工具合集

    Visual Studio 2013 扩展 Visual Studio 2013 Update 4:是目前微软发布的最新版开发工具升级包,高效而且强大.下面的扩展都是该版本的Visual Studio ...

  9. 【转载】GitHub 标星 1.2w+,超全 Python 常用代码合集,值得收藏!

    本文转自逆袭的二胖,作者二胖 今天给大家介绍一个由一个国外小哥用好几年时间维护的 Python 代码合集.简单来说就是,这个程序员小哥在几年前开始保存自己写过的 Python 代码,同时把一些自己比较 ...

随机推荐

  1. Scala学习笔记——类型

    1.Option类型 Option类型可以有两种类型,一种是Some(x),一种是None对象 比如Scala的Map的get方法发现了指定键,返回Some(x),没有发现,返回None对象 2.列表 ...

  2. js 异步请求

    <p id="check"> <label>验证码:</label> <input class="vid" id=&q ...

  3. 【Dubbo 源码解析】01_Dubbo 设计简介

    Dubbo 设计简介 Dubbo 采用 Microkernel + Plugin (微内核 + 插件)模式,Microkernel 只负责组装 Plugin,Dubbo 自身的功能也是通过扩展点实现的 ...

  4. Java处理Exception无法捕获的异常

    场景: 使用try...catch(Exception e){}来捕获异常,执行过程中线程中断或阻塞了,但是catch块中却并没有捕获到异常信息. try{ // 此处可能是调用一个远程的接口,或是调 ...

  5. nodejs 单线程 高并发

    nodejs为什么是单线程且支持高并发的脚本语言呢? 1.node的优点:I/O密集型处理(node的I/O请求都是异步的,如:sql查询.文件流操作.http请求……):异步I/O?顾名思义就是异步 ...

  6. angular 4 和django 1.11.1 前后端交互 总结

    首先 angular4 和django 1.11.1交互 有跨域问题 所以先关闭cors 和csrf验证 一.解决跨域问题 cors github django-cors-headers 1)安装co ...

  7. day_5.14 py 飞机大战Demo

    飞机未完,继续做 2018-5-14 21:05:45 明天继续       循环里面的坑; 删除列表元素后循环了打印的不一样,主要是比如相邻的删除了,33,44 删除33 循环一次后44跑到33位置 ...

  8. linux 下修改键盘映射

    参考文档 原因: 输入 键盘原本的 “\ |”,结果映射到 "< >",而 < 与 > 对应的键名分别是 less 与 greater 查看键名: xev ...

  9. easyui Dialog 去边框

    使用Url页面显示 panel-body 的内容, 因页面高度大于iframe高度,右侧则会出现边框, 如果页面显示的内容高度真实大于iframe高度,那出现边框是很正常. 我的问题就是有内部页面 的 ...

  10. 洛谷P1908 逆序对【递归】

    题目:https://www.luogu.org/problemnew/show/P1908 题意:给定一个数组,求逆序对个数. 思路: 是一个很经典的题目了.通过归并排序可以求逆序对个数. 现在有一 ...