网站首页 > 博客文章 正文
要统计每个远程 IP 访问了本机 Apache 几次,使用 Apache 日志文件和一些命令行工具来实现。
以下是一个示例脚本:
这个脚本的主要部分是使用 awk 提取日志文件中的远程 IP 地址,然后使用 sort 和 uniq -c 统计每个 IP 的访问次数,并最后使用 sort -nr 进行降序排列。
要使用这个脚本,按照以下步骤执行:
- 打开文本编辑器,将上述代码复制粘贴到编辑器中。
- 将文件保存为 apache_access_stats.sh(或任何你喜欢的文件名),确保文件扩展名是 .sh。
- 打开终端,并进入包含脚本的目录。
- 运行以下命令添加执行权限:
bashCopy code
chmod +x apache_access_stats.sh
- 运行脚本:
bashCopy code
./apache_access_stats.sh
脚本将输出每个远程 IP 访问的次数,按访问次数降序排列。
注意事项:
- 确保你的 Apache 访问日志路径和文件名正确,根据实际情况修改脚本中的 access_log 变量。
- 如果你的 Apache 配置使用了不同的日志文件,需要相应调整脚本。
- 脚本执行需要对 Apache 访问日志文件具有读权限,确保以足够权限运行。
- 脚本中的 awk 和 sort 命令的选项因系统而异,根据实际情况进行调整。
为了更加灵活和详细地统计 Apache 访问情况,使用一些其他的工具和选项。
扩展的示例:
统计指定时间段的访问:
如果你希望统计 Apache 日志中的指定时间段内的访问情况,使用 awk 过滤时间范围。以下是一个示例:
#!/bin/bash # 定义 Apache 访问日志文件路径 access_log="/var/log/apache2/access.log" # 指定时间范围 start_time="15/Jan/2024:10:00:00" end_time="15/Jan/2024:12:00:00" # 使用 awk 和 sort 命令统计指定时间范围内每个远程 IP 的访问次数,并按访问次数降序排列 ip_counts=$(awk -v start="$start_time" -v end="$end_time" '$4 > start && $4 < end {print $1}' "$access_log" | sort | uniq -c | sort -nr) # 显示结果 echo "Access counts by remote IP in the specified time range:" echo "$ip_counts"
这个脚本中,$4 表示日志中的时间字段,通过 -v 选项传递变量 start 和 end 给 awk。
过滤访问次数超过阈值的 IP:
如果你只关注访问次数超过某个阈值的远程 IP,可添加一个过滤条件。以下是一个示例:
#!/bin/bash # 定义 Apache 访问日志文件路径 access_log="/var/log/apache2/access.log" # 指定阈值 threshold=10 # 使用 awk 和 sort 命令统计每个远程 IP 的访问次数,并过滤出访问次数超过阈值的 IP,按访问次数降序排列 ip_counts=$(awk '{print $1}' "$access_log" | sort | uniq -c | awk -v threshold="$threshold" '$1 > threshold {print $0}' | sort -nr) # 显示结果 echo "Access counts by remote IP exceeding the threshold ($threshold):" echo "$ip_counts"
这个脚本中,$1 表示访问次数,通过 -v 选项传递变量 threshold 给 awk。
使用日志分析工具:
对于更复杂的日志分析需求,会考虑使用专业的日志分析工具,如 awstats、Webalizer 或 GoAccess。这些工具提供了更丰富的功能和可视化界面,可更方便地分析和理解访问日志。
注意事项:
- 在使用脚本时,确保脚本中的路径和变量与实际情况相符。
- 对于大型网站,可能需要考虑日志轮换的情况,以便正确处理日志文件。
- 在处理日志时,确保对日志文件具有足够的读权限,以防止权限问题。
猜你喜欢
- 2024-10-15 英国Access将与马来西亚数字经济发展局合作,加快在亚太地区扩张
- 2024-10-15 霍尼韦尔为香港麗翔公务航空提供GoDirect客舱互联服务|美通社
- 2024-10-15 详解Win10家庭版/专业版/企业版功能区别
- 2024-10-15 Go1.18 快讯:这个新特性太实用了(go1.17新特性)
- 2024-10-15 CentOS中Nginx日志自动分割及日志分析
- 2024-10-15 GO语言(三十):访问关系型数据库(上)
- 2024-10-15 从linux网站搭建到日志服务审计渗透溯源
- 2024-10-15 golang对接阿里云私有Bucket上传图片、授权访问图片
- 2024-10-15 开源的分析web日志工具-Python语言开发,具有灵活的日志格式配置
- 2024-10-15 nginx运维小纪(nginx应用与运维实战 电子版)
你 发表评论:
欢迎- 07-02在线学习在爱奇艺信息流推荐业务中的探索与实践
- 07-02Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- 07-02MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 07-02深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- 07-02iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 07-02快速了解红色线粒体超氧化物荧光探针的基本特性
- 07-02腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- 07-02Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 最近发表
-
- 在线学习在爱奇艺信息流推荐业务中的探索与实践
- Diallyl Trisulfide(H2S donor)二烯丙基三硫:合成方法与工艺
- MitoSOX Red Mitochondrial Superoxide Indicator使用方法
- 深度时空网络、记忆网络与特征表达学习在 CTR 预估中的应用
- iFluor 488标记鬼笔环肽可通过标记F-actin,研究细胞在迁移等
- 快速了解红色线粒体超氧化物荧光探针的基本特性
- 腔肠素400A(Coelenteramine 400a)综合解析,一文掌握所有要点!
- Chinese doctor Zhang Junqiao's heroic act exemplifies deep China-Africa friendship: FM spokesperson
- 用Python写了一个上课点名系统(附源码)(自制考勤系统)
- Kubernetes中的PV、PVC、Configmap介绍
- 标签列表
-
- ifneq (61)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)