实例1:
1、对Apache日志,编写对应的处理脚本
输入:
Apache
2020-02-03 11:03:23 WARN My warning message repeated 3 times
2020-02-03 11:03:23 ERR oops, error message repeated 8 times
2020-02-03 11:03:26 ERR this is my error message repeated 1 times
2020-02-03 11:03:26 WARN MY warning , so scary, repeated 1 times
2020-02-03 11:03:26 WARN cpu utilization high, repeated 1 times
2020-02-03 11:03:29 INFO this is for test repeated 2 times
1.1统计不同级别日志的行数
输出:
Apache
WARN: 3
ERR: 2
INFO: 1
思路:
1)声明使用的shell
2)定义变量
3)对内容过滤将结果,输出
4)为了方便部门其他人使用,我们会在第二行写注释,此脚本用途
常用选项说明:
– c 显示输出中,在每行行首加上本行在文件中出现的次数。
– d 只显示重复行。
– u 只显示文件中不重复的各行。
A、过滤出所需内容,及重复次数
B、最终脚本
1.2 统计Error/WARN发生的总次数
输出:
Apache
ERR: 9
WARN: 5
实例2
1、对指定字段求和
vim 1.sh
1 aaa 123.52
2 bbb 125.54
3 aaa 123.52
4 aaa 123.52
5 ccc 126.36
2、分组求和,排序
awk ‘{count[$2] += $3} END {for(i in count ) print i, count[i]}’ sum.log | sort -nrk 2
3、仅从日志过滤出ip输出屏幕
awk ‘{print $1}’ access.log |sort | uniq -c | sort -n -r
4、shell 对数据备份
5、