bash-shell

I. 主理人序

在建立博客防御策略时,我们需要知道一定时间内(如一分钟内)访问博客的独立IP数;设定一个阈值如100个IP数,超过这个阈值则代表此时的访问是异常的。

此时我们就需要提取一分钟内的 access.log ,并对其进行排序、提取、统计、去重;

II. 学习资料

via sort 命令详解 sort命令_Linux sort 命令用法详解:将文件进行排序并输出.pdf
via awk 命令详解 awk命令_Linux awk 命令用法详解:文本和数据进行处理的编程语言.pdf
via sed 命令详解 sed命令_Linux sed 命令用法详解:功能强大的流式文本编辑器.pdf

III. Linux删除重复行

# !/bin/sh
file='/path/to/test.txt' #定义文件文件
sort -n $file | uniq #依照数值的大小排序
sort -n $file | awk '{if($0!=line)print; line=$0}' #依照数值的大小排序;$0 代表当前行;
sort -n $file | sed '$!N; /^\(.*\)\n\1$/!P; D'

IV. 实例

#!/bin/bash 
file='/home/tnt/ban.ip.conf'
sort -n $file | sed '$!N; /^\(.*\)\n\1$/!P; D' > /home/tnt/ban.ip.filter.conf;
clear
lnmp nginx reload; # reload nginx 配置文件 

V. 附注

参考:Linux删除重复行

最后修改:2021 年 02 月 02 日 10 : 21 PM