如何找出爬取网站的来源IP呢?

1.背景

最近网站数据库性能很不稳定,查询性能在某段时间很慢,服务器CPU也很高,平常时间很低,感觉被爬虫恶意搞了,因此我分析了一下最近的nginx访问日志

2.方法

找出访问量最大20个ip

[root@100 nginx]# cat liuhaihua.access.log | awk -F " " '{print $1}' |sort |uniq -c |sort -rn|head -n 20
217636 47.76.99.127
217605 47.76.209.138
39006 66.249.74.72
38747 66.249.71.40
33965 216.244.66.244
29643 66.249.74.73
29207 14.153.238.144
28882 129.211.163.247
28485 14.155.183.120
23862 66.249.79.167
21645 14.153.233.199
19477 66.249.74.74
18979 14.155.230.15
17436 66.249.71.41
14782 66.249.69.35
13284 47.94.150.2
12954 66.249.70.71
12742 14.155.204.218
12728 14.153.241.201

解释:uniq的一个特性,检查重复行的时候,只会检查相邻的行。重复数据,肯定有很多不是相邻在一起的;所以需要先进行排序,然后进行统计,再进行逆向排序。

参数解读:
sort:-r:逆序输出排序结果-n:根据字符串数值比较uniq:从输入文件或者标准输入中筛选相邻的匹配行并写入到输出文件或标准输出。-c:在每行前加上表示相应行目出现次数的前缀编号

查询某个IP的详细访问情况,按访问频率排序

[root@100 nginx]# grep '47.76.99.127' liuhaihua.access.log |awk '{print $7}'|sort |uniq -c |sort -rn |head -n 1001641 /archives/497017.html1038 /archives/503168.html238 /156 /js/libs/jquery-confirm.min.js147 /js/libs/jquery.lazyload.min.js142 /js/libs/nprogress.min.js142 /js/libs/jquery.fancybox.min.js141 /js/zhyd.js
.....................

查看这个ip今天出现的次数

grep "47.76.99.127" /var/log/nginx/liuhaihua.access.log | grep "$(date +%d/%b/%Y)" | awk -F'"' '{print $2}' | awk '{print $2}'

这个命令的作用是:

  • grep "47.76.99.127":过滤出包含该IP地址的日志行。
  • grep "$(date +%d/%b/%Y)":进一步过滤出包含今天日期的日志行。
  • wc -l:统计这些行的数量。

查看这个IP今天访问的路径

grep "47.76.99.127" /var/log/nginx/liuhaihua.access.log | grep "$(date +%d/%b/%Y)" | awk -F'"' '{print $2}' | awk '{print $2}'

这个命令的作用是:

  • grep "47.76.99.127":过滤出包含该IP地址的日志行。
  • grep "$(date +%d/%b/%Y)":进一步过滤出包含今天日期的日志行。
  • awk -F'"' '{print $2}':提取出请求行(通常是第二个字段)。
  • awk '{print $2}':从请求行中提取出请求的URL路径(通常是第二个字段)。

图形化nginx访问日志神器

安装

yum install goaccess

命令查看

goaccess liuhaihua.access.log

生成静态文件

goaccess liuhaihua.access.log -o report.html --log-format=COMBINED

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/17568.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

打造旅游卡服务新标杆:构建SOP框架与智能知识库应用

随着旅游业的蓬勃兴起,旅游卡产品正逐渐成为市场的焦点。为了进一步提升服务质量和客户体验,构建一套高效且标准化的操作流程(SOP)变得尤为重要。本文将深入探讨如何构建旅游卡的SOP框架,并介绍如何利用智能知识库技术…

Java 简单家居开关系统

1.需求: 面向对象编程实现智能家居控制系统(简单的开关) 2.实现思路 1.定义设备类:创建设备对象代表家里的设备 JD类: import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;D…

Github客户端工具github-desktop使用教程

文章目录 1.客户端工具的介绍2.客户端工具使用感受3.仓库的创建4.初步尝试5.本地文件和仓库路径5.1原理说明5.2修改文件5.3版本号的说明5.4结合码云解释5.5版本号的查找 6.分支管理6.1分支的引入6.2分支合并6.3创建测试仓库6.4创建测试分支6.5合并分支6.6合并效果查看6.7分支冲…

3D Gaussian Splatting的全面理解

1.概述 高斯展开是一种表示 3D 场景和渲染新视图的方法,在“用于实时辐射场渲染的 3D 高斯展开” 中介绍。它可以被认为是类似 NeRF 的模型的替代品,就像过去的 NeRF 一样,高斯飞溅导致了许多新的研究工作,他们选择将其用作各种用例的 3D 世界的底层表示。那么它有什么特别…

Arcgis地图实战三:自定义导航功能的实现

文章目录 1.最终效果预览2.计算两点之间的距离3.将点线画到地图上4.动态展示点线的变化5.动态画线6.动态画点 1.最终效果预览 2.计算两点之间的距离 let dis this.utilsTools.returnDisByCoorTrans(qdXYData, zdXYData, "4549")当距离小于我们在配置文件中预设置的…

【Mysql】Mysql的多表查询---多表联合查询(中)

1、外连接查询 外连接 查询分为左外连接(left outer join), 右外连接查询(right outer join) ,满外连接查询(full outer join). 注意:oracle 里面有full join &#xf…

Linux:进程状态

文章目录 前言一、初识fork1.1 fork函数的介绍1.2 fork出的子进程存在形式1.3 写时拷贝 二、进程的状态2.1 Linux内核源代码2.2 理解内核链表(重要)2.3 运行状态2.4 阻塞状态2.5 挂起状态 三、Z(zombie)状态 ,僵尸进程四、 孤儿进程总结 前言…

qml显示加载嵌入QWidget窗口

本篇博客介绍如何在qml界面里显示QWidget窗口,开发环境Qt6.5.3 qml. 视频讲解:https://edu.csdn.net/learn/40003/654001?spm=3001.4143 qml和QWidget是两套独立的开发方式,二者的窗口可以相互嵌套显示,本篇博客介绍把QWidget窗口封装为动态库,然后在QML的窗口里显示出来…

【MySQL】多表查询

5. 多表查询 5.1 多表关系 项目开发中,在进行数据库表结构设计时,会根据业务需求及业务模块之间的关系,分析并设计表结构,由于业务之间相互关联,所以各个表结构之间也存在着各种联系,基本上分为三种&#…

2024-11-16 串的存储结构

一、顺序存储。 1.首先定一个静态数组,然后定义i记录串的实际长度。(缺点:长度不可变) 2.使用malloc申请动态空间,定义指针指向串的地址。(需手动ferr) 方案一: 数组末尾记录长度 …

nodejs21: 快速构建自定义设计样式Tailwind CSS

Tailwind CSS 是一个功能强大的低级 CSS 框架,只需书写 HTML 代码,无需书写 CSS,即可快速构建美观的网站。 1. 安装 Tailwind CSS React 项目中安装 Tailwind CSS: 1.1 安装 Tailwind CSS 和相关依赖 安装 Tailwind CSS: npm…

Windows 安装Docker For Desktop概要

Windows 安装docker 下载部分的工作需要使用科学技术。如果没有可以联系博主发送已下载好的文件。 本文档不涉及技术的讲解,仅有安装的步骤。 准备工作 包含下载与环境准备,下载的文件仅下载,在后续步骤进行安装。 微软关于wsl的文档&…

对称加密算法DES的实现

一、实验目的 1、了解对称密码体制基本原理 2、掌握编程语言实现对称加密、解密 二、实验原理 DES 使用一个 56 位的密钥以及附加的 8 位奇偶校验位,产生最大 64 位的分组大小。这是一个迭代的分组密码,使用称为 Feistel 的技术,其中将加密…

三十八、Python(pytest框架-上)

一、介绍 框架(framework):框架是为解决一类事情的功能集合。 pytest框架:pytest框架是单元测试框架,这是第三方框架想要使用必须要安装,可以使用pytest来作为自动化测试执行框架,用来管理测试…

《Django 5 By Example》阅读笔记:p165-p210

《Django 5 By Example》学习第6天,p165-p210总结,总计46页。 一、技术总结 1.bookmarks项目 (1)登录认证 作者这里使用的是Django自带的auth。 (2)上传头像 图片处理,使用Pillow。 (3)扩展user 扩展user模型与自带的user使用外键进行…

shell基础(3)

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团…

JVM面试题总结

1.介绍一下JVM的内存结构 JDK1.8及以后,JVM主要分为元空间、堆、虚拟机栈、本地方法栈、程序计数器五个部分,另外还有一个直接内存部分,是直接属于操作系统的。 其中元空间、堆是线程共享的,虚拟机栈、本地方法栈、程序计数器是线…

小新Pro 14 AHP9 2024款(83D3)原装oem预装系统Win11恢复安装包下载

适用品牌机型 :LENOVO联想【83D3】 链接:https://pan.baidu.com/s/10RAxNdvYPWJ21b_4--Y7Xw?pwdo5ju 提取码:o5ju 联想原装出厂Windows11系统自带所有驱动、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office365办公软…

【论文笔记】Towards Privacy-Aware Sign Language Translation at Scale

🍎个人主页:小嗷犬的个人主页 🍊个人网站:小嗷犬的技术小站 🥭个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 基本信息 标题: Towards Privacy-Aware Si…

Spring:bean的配置

对于bean的配置中,主要会讲解bean基础配置,bean的别名配置,bean的作用范围配置(重点),这三部分内容: bean基础配置 id与class配置 bean的name属性 bean的别名配置 bean作用范围scope配置 scope使用后续思考 介绍完scope属性以后,我们…