如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址
作为系统管理员,您需要密切关注访问您网站的 IP 地址。服务器日志是此类信息的有用来源。它们包含您的服务器收到的每个请求的 IP 地址、日期时间、请求类型、URL、服务器响应等。在本文中,我们将了解如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址。
如何从日志文件中提取 IP 地址
Apache 服务器文件的默认位置是
/var/log/http/access_log [For RedHat based systems]
/var/log/apache2/access.log [For Debian based systems]
/var/log/http-access.log [For FreeBSD]
NGINX 日志文件的默认位置是
/var/log/nginx/access_log [For RedHat based systems]
/var/log/nginx/access.log [For Debian based systems]
/var/log/http-access.log [For FreeBSD]
我们将研究不同的用例来提取 IP 地址。在以下每个命令中,将日志文件路径替换为您的服务器的路径。
如何为每个请求获取 IP
您可以通过以下命令轻松使用 awk 命令打印每个请求的 IP 地址。
$ awk '{ print $1 }' /var/log/http/access_log
日志文件的第一列包含 IP 地址。所以我们告诉 awk 为我们简单地打印第一列。
如何获得唯一 IP
上面的命令将列出每个包含重复值的请求的 IP 地址。您可以将此输出传递给 uniq 命令,以获取访问您网站的唯一 IP 地址列表。
$ awk '{ print $1 }' /var/log/http/access_log | uniq
如何获取特定的 IP 地址
如果您要在日志文件中查找特定 IP 地址(例如 192.34.45.46),请改用 grep 命令,如图所示。
$ sudo grep "192.34.45.46" /var/log/http/access_log
如何获取最常用的 IP 地址
如果您需要查找访问您网站的前 10 个最频繁的 IP 地址,请使用以下 awk 命令。它基本上将所有 IP 地址的列表传递给 sort & uniq,他们计算每个 IP 的点击量,并按点击量的降序对它们进行排序。
$ sudo awk '{ print $1}' /var/log/http/access_log | sort | uniq -c | sort -nr | head -n 10
如果您想定期运行这些命令,建议为它创建一个 shell 脚本。使用以下命令创建一个空白 shell 脚本。
$ sudo vi /home/extract_ip.sh
将以下行添加到它。
#!/bin/shecho "Unique IP Addresses accessing your site"
sudo awk '{ print $1 }' /var/log/http/access_log | uniqecho "10 Most Frequent IP addresses accessing your site"
sudo awk '{ print $1}' /var/log/http/access_log | sort | uniq -c | sort -nr | head -n 10
保存并关闭文件。
使 Shell 脚本可执行。
$ sudo chmod +x extract_ip.sh
使用以下命令运行 shell 脚本,如下所示。
$ sudo /home/extract_ip.sh
您还可以创建 cronjob 以定期运行上述脚本。使用以下命令打开 crontab。
$ sudo crontab -e
添加以下行以在每天上午 10 点运行上述 shell 脚本并将输出发送到 /home/ip_log.txt
0 10 * * * sudo /home/extract_ip.sh >>/home/log.txt 2>&1
保存并关闭文件。
因此,您只需打开 /home/log.txt 文件即可轻松访问所有这些信息
$ sudo cat /home/log.txt
在本文中,我们学习了几种从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址的方法。我们还将这些命令保存到一个 shell 脚本中,并创建了一个 cronjob 来每天自动运行这个脚本。您可以根据您的要求自定义它们。
如何从 Apache 和 NGINX 服务器的日志文件中提取 IP 地址相关推荐
- 运用awk提取日志文件中的IP地址
在我们的日常工作中,可能会遇到各种不同的问题,有来自内部,有的来自外部. 以Nginx服务为例,服务上线之后可能会遭受非法的流量攻击,我们在配置Nginx服务时可以通过Nginx.conf配置文件中的 ...
- python读取日志统计ip_使用python脚本实现统计日志文件中的ip访问次数
使用python脚本实现统计日志文件中的ip访问次数,注意此脚本只适用ip在每行开头的日志文件,需要的朋友可以参考下 适用的日志格式: 106.45.185.214 - - [06/Aug/2014: ...
- klg日志文件中提取RGBD图像数据
main函数 本程序用于从klg日志文件中提取RGB图像和Depth图像信息,klg文件在ElasticFusion中被用于保存数据集. 涉及的相关开源代码如下: LogView mp3guy/Log ...
- nginx服务器查看日志文件,nginx服务器中access_log日志分析与配置详解
前言 nginx的log日志分为:access log 和 error log 其中access log 记录了哪些用户,哪些页面以及用户浏览器.ip和其他的访问信息 error log 则是记录服务 ...
- windows服务器网站日志,windows服务器网站日志文件
windows服务器网站日志文件 内容精选 换一换 华为云帮助中心,为用户提供产品简介.价格说明.购买指南.用户指南.API参考.最佳实践.常见问题.视频帮助等技术文档,帮助您快速上手使用华为云服务. ...
- 服务器怎么清除日志文件,如何清理服务器数据库日志文件
如何清理服务器数据库日志文件 内容精选 换一换 在本容灾方案中,线下的生产数据中心有两台MySQL,需要配置为主备关系,以确保线下仅MySQL故障时,可直接在线下切换到备节点,因此,需要先配置业务端内 ...
- 缓存nginx服务器的静态文件
------26--张立-- 目的: 缓存nginx服务器的静态文件.如css,js,htm,html,jpg,gif,png,flv,swf,这些文件都不是经常更新.便于缓存以减轻服务器的压力. 实 ...
- 服务器如何关闭登录日志文件,linux云服务器登录日志文件
linux云服务器登录日志文件 内容精选 换一换 Cloud-Init工具安装完成后,请参考本节操作配置Cloud-Init工具.已安装Cloud-Init工具.已为云服务器绑定弹性公网IP.已登录云 ...
- 数据库服务器备份日志文件,数据库服务器备份日志文件
数据库服务器备份日志文件 内容精选 换一换 使用自定义脚本实现数据库备份完成后,可以通过如下操作验证数据库备份结果是否成功.本章节以SQL_SERVER数据库为例进行验证. 业界对备份一致性的定义包括 ...
最新文章
- C++ Stack Queue priority_queue
- python之路6-迭代器、生成器、装饰器
- Python中的元类(metaclass)
- Spring动态注入泛型集合Bean
- 小波说雨燕 第三季 构建 swift UI 之 度假清单 学习笔记
- :传递给 left 或 substring 函数的长度参数无效。_Excel中LEFT函数和RIGHT函数的用法。...
- 从零基础入门Tensorflow2.0 ----四、14. tf.io.decode_csv的使用
- talib python文档_talib 中文文档
- 代码审计工具-Fortify详细介绍和使用
- 中国钢铁行业十四五形势展望与发展战略研究报告2022版
- Lightbox JS(图片显示控件)
- 网站CNZZ数据统计的实现方式
- Godaddy域名与腾讯云服务器ip绑定,使用域名访问
- 第一章:计算机的软硬件基本结构_3
- 【数据机构】最短路径之Dijkstra算法(迪克斯特拉算法)
- 世界药王再遭“无间道”,药企如何保护自己的数据
- 穷人思维和富人思维,决定你一生的财富
- 自动化面试问题及答案_普遍的基本收入是自动化的答案
- Python 第三方包的使用指南
- MVPArch - Android MVP 快速开发框架