-
变量定义:
COUNT
: 记录添加到黑名单的 IP 数量。LIMIT_ALL
: 对于 IP 范围的访问次数限制。LIMIT_ONE
: 对于单个 IP 的访问次数限制。LINES_COPY
: 记录从日志中提取的行数。DENY_CONF
: Nginx 黑名单配置文件的路径。LOG_FILE
: Nginx 访问日志文件的路径。TMP_DENY_ALL
: 临时文件,用于存储按前三个 IP 字段分组后的 IP 列表。TMP_DENY_ONE
: 临时文件,用于存储单个 IP 的计数列表。
-
获取开始时间:设置为当前时间的 3 分钟前。
-
读取日志:
- 从日志文件末尾开始,读取直到找到时间小于
START_TIME
的日志,统计符合时间范围的日志行数。
- 从日志文件末尾开始,读取直到找到时间小于
-
处理日志,按 IP 范围:
- 从日志中提取 IP,按前三个字段(即网段)进行计数。
- 如果计数超过
LIMIT_ALL
,将该网段添加到黑名单配置中。
-
处理日志,按单个 IP:
- 从日志中提取单个 IP 的计数。
- 如果计数超过
LIMIT_ONE
01-16
6575
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-26
1151
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-27
440
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)