首页 > 系统相关 >Linux三剑客,日志分析

Linux三剑客,日志分析

时间:2022-11-07 23:11:58浏览次数:41  
标签:log access sed awk Linux print 日志 uniq 三剑客

一、awk的使用

1、awk简介

  AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫 AWK 是因为其取了三位

创始人 Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。

linux中三剑客功能:

  grep:过滤文本
  sed:修改文本
  awk:处理文本

2、awk [参数] [处理内容] [操作对象]

例1:awk -F : '{print $1}' /etc/passwd   打印以冒号分割文本passwd第一列内容

参数 -F  制定文本分割符(默认空格作为分割符),以冒号作为分割符 -F : 

处理内容 '{print $NF}' ,print 打印、$ 变量名、NF 变量值(NF为0打印全部,为1打印第一列)

原文件                    处理后的内容

例2:awk '{print $1}' access.log | wc -l   统计第一列ip的数据条数(默认空格分割)

wc 命令用于计算字数。

参数:   -c,bytes:统计字节数。

    -m,chars:统计字符数。

    -w,words:统计字数。

    -l,lines:统计行数。

    -L,max-line-length:统计最长行的长度。

例3:awk '{print $1}' access.log | uniq | wc -l 统计第一列ip的数据条数,去除重复的(默认空格分割)

uniq 检查文本重复出现的行列

二、sed的使用

创建一个sed.txt文件

1、sed使用

例1:sed '1a 999' sed.txt   在文本文件sed.txt第一行下面新增999

注意:sed.txt内容本身没有变

三、cat使用

例1:cat sed.txt|sort  给文件内容排序

    cat sed.txt|sort -r  给文件反向排序

注意:sed.txt内容本身没有变

 

sort  

  -r:表示降序排列,默认是升序

  -n:按数值大小排序

  -t:指定排序时使用的分隔字符,sort命令默认字段分隔符为空格和Tab

  -k:通过键排序

例2:cat access.log|awk '{print $7}'|sort|uniq -c|sort -n -k 1 -r

  

四、uniq用法

1、uniq -c sed.txt

  -c: 打印每行出现的次数

  -d:打印重复出现的行

结论:uniq只会按照连续重复的去重统计

2、解决连续重复的去重统计问题

uniq -c sed.txt | sort -r   排序后去重

问题:还是有重复的,并没有做到排序去重

改变命令执行顺序:cat sed.txt | sort -r | uniq -c  先查看sed.txt,排序,去重

五、查看处理日志

1、例1:awk '{print $7}' /data/nginx/log/access.log  查看访问了那些接口

  

2、echo 0>access.log     清空日志

3、tail -n 300 -f access.log 动态查看300行日志

4、awk '{print $7}' /data/nginx/log/access.log|sort|uniq   排序去重查找日志access.log里的ip

     awk '{print $7}' /data/nginx/log/access.log|sort|uniq|wc -l   排序去重查找日志access.log里的ip的个数  

  

5、awk '{print $1,$7}' access.log|grep 172.16.227.1     查找某个ip访问接口了那些接口

   awk '{print $1,$7}' access.log|grep 172.16.227.1|sort|uniq          进一步排序去重(注意uniq去重之前要先排序)    

  

6、awk '{print $4,$1,$7}' access.log|grep 14/Aug/2022:09:37:13     查找特定时间的访问ip和接口

   awk '{print $4,$1,$7}' access.log|grep 14/Aug/2022:09:37:13|wc -l   查找特定时间的访问量

   awk '{print $4,$1,$7}' access.log|grep 14/Aug/2022:09:37:13|awk '{print $2}'|sort|uniq|wc -l  特定时间访问量去重

  

  实际压力测试过程中不需要统计不同ip不同访问次数,因为在访问过程中的真实压力是真实的、存在的,不会因为jvm、redis对服务器没有压力

 

标签:log,access,sed,awk,Linux,print,日志,uniq,三剑客
From: https://www.cnblogs.com/xiao-wlkq/p/16584817.html

相关文章

  • Linux学习环境搭建流程
    Linux学习环境搭建Vmware安装VMware下载:https://www.vmware.com/go/getworkstation-win运行安装程序,该重启安装驱动就重启,不需要就下一步,傻瓜式安装。勾选项:增强......
  • Archlinux + Dwm 配置流程
    本着学习C的态度来了解dwm,本身作为一个i3wm的追崇者,与dwm会擦出怎么样的火花呢?下载安装dwmarchlinuxcn源配置编辑/etc/pacman.conf文件,添加bfsu的archlinuxcn源sudovi......
  • Arch Linux + KDE 配置&美化(持续更新~)
    ArchLinux+KDE配置&美化(持续更新~)这篇文章着重记录archlinux+KDE的一个基本的配置过程。不包括安装过程(使用archInstall.sh)。内容大概有以下几点:当前美化进度......
  • Archlinux配置fcitx5
    fcitx5——Linux中最好用的中文输入法ArchLinux配置fcitx5输入法本文基于archlinux+dwm。其他的桌面环境以及窗口管理器,配置选项差不多。安装基础包fcitx5-im首......
  • ArchLinux安装手册(2022-10-01)
    准备工作镜像下载:北京外国语大学镜像使用ventoy做启动盘:(1)ventoy下载:github下载地址(2)解压运行下载好的ventoy,设备选择准备好的U盘(会清空),然后选择安装即可。......
  • Archlinux安装Picgo配置Typora
    Typora堪称为markdown界的老大哥,其大名我们多有耳闻,所见即所的就是他的特点。但是在日常使用中,也经常会碰到一些特别的需求,比如:希望图片能够上传到云端。怎么将markdown即......
  • Linux下Nginx配置
    目录1、全局块1.1、user指令1.2、worker_processes指令1.3、include用来引入其他配置文件,使Nginx的配置更加灵活1.4、events块1.5、http块1.5.1、定义MIME-Type1.5.2、自定......
  • Linux-安装MySQL
    一、卸载系统自带的mariadb1、查看系统自带的mariadbrpm-qa|grepmariadb   2、卸载rpm-e--nodeps mariadb-libs-5.5.68-1.el7.x86_64二、mysql安装1、从官网下载M......
  • 基于ansible实现不同AWS账号之间EC2-Linux系统的自动化-环境准备
    不同的AWS之间的EC2之间如果需要通信,实现ansible自动化,是需要有网络条件的本文主要介绍不同AWS账号之间EC2-(Linux系统)之间实现通信的网络环境准备步骤1、在VPC中建立到另......
  • 【THM】Linux Privilege Escalation(Linux权限提升基础)-学习
    本文相关的TryHackMe实验房间链接:https://tryhackme.com/room/linprivesc通过学习相关知识点:了解Linux权限提升的基础知识,从枚举到利用,了解多种不同的权限提升技术。介......