日志处理工具集

sort 排序

可以依据不同的数据型态来排序

[root@Adley ~]# sort [-fbMnrtuk] [file or stdin]
选项不参数:
-f :忽略大小写
-b :忽略最前面的空格符部分;
-M :以月份的名字来排序,例如 JAN, DEC 等等的排序方法;
-n : 使用『纯数字』进行排序(默认是以文字型态来排序的)-r :反向排序;
-u :就是 uniq ,相同的数据中,仅出现一行代表;
-t :分隔符,预设是用 [tab] 键来分隔;
-k :以那个区间 (field) 来进行排序的意思

uniq 去重

去重+统计数量

可以将重复的数据仅列出一个来显示,且可以进行统计
#uniq [-ic]
选项:
-i //忽略大小写
-c //进行统计

例如:我想要知道每个人登入服务器的总次数,可以这样:
[root@Adley ~]# last | cut -d ' ' -f1 |sort|uniq -c

cut切片
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
tr 字符转换

将冒号删除
[root@Adley ~]# head -n 1 /etc/passwd |tr -d ':'
rootx00root/root/bin/bash

将所有的小写变成大写
[root@Adley ~]# head -n 1 /etc/passwd
root:x:0:0:root:/root:/bin/bash
[root@Adley ~]# head -n 1 /etc/passwd |tr '[a-z]' '[A-Z]'
ROOT:X:0:0:ROOT:/ROOT:/BIN/BASH

xargs 参数替代

可以将标准的输出变为后面命令的参数
在与 find 命令配合是 xargs 与 -exec 的区别:

  • -exec: 在某些系统中,他对于所传递给他的参数的长度有限制,容易出现“参数太长”或“参数列溢出” 等错误信息;并且 exec 会同时发起多个进程,这样就会耗系统资源

  • xargs: 只会发起一个进程,节省了系统的资源

 # xargs [-epn] command

 选项
 -O 把空格字符改变为一般字符
 -e 后面跟字符串,当xargs分析到字符串时就停止,格式为 -e'test' 中间没有空格
 -p 执行时询问
 -n 后面接数字,定义command执行时,要使用几个参数
找出 /sbin 目录下的文档,并使用 ls -l 列出详细数据

#find /sbin -perm +7000 | ls -l //这样是不行的,因为 ls 命令不支持管道

#find /sbin -perm +7000 |xargs | ls -l //这样就行了

把找到的文件复制到 /test 目录下
#find /sbin -perm +7000 | cp `xargs` /test
#find /sbin -perm +7000 | cp $(xargs) /test
关于减号 - 的用途

可以作为 stdout 和 stdin

#tar -cvf - /home | tar -xvf -

简单示例:

1 统计来源 IP top 10
  就是统计处理访问服务器最多的前十名,并且有访问的次数
[root@Adley ~]# awk '{print $1}' nginx_app.log |uniq -c|sort -nr|head

2. 统计出 4xx 状态码的 url
[root@Adley ~]#  awk '$9>=400 {print $7,$9}'  nginx_app.log |uniq -c|sort -nr|head

3. 统计被访问的url 的 top10
[root@Adley ~]# awk '{print $7}' nginx_app.log |uniq -c |sort -nr|head
或者
[root@Adley ~]# cut -d" " -f 7 nginx_app.log |uniq -c|sort -nr|head
发布了14 篇原创文章 · 获赞 9 · 访问量 469

猜你喜欢

转载自blog.csdn.net/Adley_zk/article/details/104592243