简单实用Shell命令汇总

一、统计Nginx日志中访问量最多的IP

cat access.log |awk '{print $1}'|sort|uniq -c|sort  -r

(1)先看下Nginx日志内容格式

我这个是认日志格式,可以看到访问IP在第一列

[root@localhost logs]# head -n 1 access.log 
192.168.5.2 - - [04/Nov/2021:09:02:11 +0800] "GET / HTTP/1.1" 200 612 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36"

(2)统计结果

[root@localhost logs]# cat access.log |awk '{print $1}'|sort|uniq -c|sort -r
  81700 192.168.5.2
      3 127.0.0.1

awk 认以空格分隔,所以直接打印第一列。接着进行sort排序,再使用uniq检查重复出现的行,加上-c统计重复出现的行的次数,在列旁边显示。最后因为是要从大到小排序,所以使用sort -r进行倒序

相关文章

Centos系统之Shell编程基础知识
从Export理解Shell环境和变量生存期
linux shell数组变量、类型及规则
Centos编程Shell基本工作原理方案
Centos操作系统编程之Shell 问答录
rsync-linux备份脚本