跳到主要内容

使用AI分析网站访问日志

· 阅读需 3 分钟

简介

我的服务器后台运维工具使用了宝塔面板,其中功能“日志 - 网站日志”记录了我博客的访问日志。

AI分析网站访问日志

把日志导出到本地,然后使用AI分析访问日志,AI帮我分析了下,结果如下:

🔍 访问行为分析

  1. 潜在恶意扫描行为 以下请求路径较为敏感,可能暗示有恶意扫描、漏洞探测或暴力破解尝试:

/resetpw.php、/xmlrpc.php、/archivarix.cms.php、/tinyfilemanager.php:常见被攻击路径

/sftp-config.json、/.vscode/sftp.json:攻击者可能在寻找开发配置文件

多次请求 /webuploader/server/preview.php:试图探测后台文件上传接口

来自 IP 51.91.249.11 的连续 WordPress 路径探测(wlwmanifest.xml, xmlrpc.php 等):这是典型的WordPress指纹探测

  1. 正常访客请求 /, /blog/rss.xml、/img/favicon.ico:为站点主页、RSS订阅、图标等常规请求

状态码 200,访问频繁,访问者为浏览器(如 iPhone、Mac、Windows 等 User-Agent)均为正常用户行为。

  1. 搜索引擎爬虫活动 日志中包含大量来自搜索引擎爬虫(bot)的访问:

Baiduspider:百度蜘蛛

Googlebot:谷歌爬虫

bingbot:Bing爬虫

AhrefsBot、Bytespider、GPTBot、OAI-SearchBot:SEO工具和AI相关爬虫

这些请求主要访问页面、文档、标签、robots.txt 和 sitemap 文件,目的是为内容收录。

⚠️ 问题与建议 ❗安全风险 多个恶意IP尝试访问敏感或不存在路径,说明网站存在被扫描和攻击的风险,建议:

配置 Web 应用防火墙(WAF)

禁止访问无效脚本路径(如 /resetpw.php)

限制频繁请求同一资源的 IP

安装 Fail2Ban 等工具防止暴力破解

🧭 SEO优化 robots.txt 请求大量为 404,说明你网站没有设置 robots 文件。

建议创建 /robots.txt 文件,引导搜索引擎正确爬取

示例内容:

txt 复制 编辑 User-agent: * Disallow: Sitemap: https://yourdomain.com/sitemap.xml 🌐 用户设备统计(大致) 访问设备以 iPhone设备 和 Windows 桌面 为主

浏览器类型主要为:

Chrome(多版本)

Safari(尤其在 iOS)

Firefox(少量)

📊 总结(简洁版) 类别 说明 正常访问 多为首页、RSS订阅、图片资源等访问 恶意扫描 针对 /xmlrpc.php、/webuploader 等路径频繁请求 搜索引擎爬虫 Baidu、Google、Bing、Ahrefs、GPTBot等广泛爬取网站内容 安全建议 增加防火墙、设置robots.txt、限制敏感路径访问

R开发小笔记

· 阅读需 2 分钟

简介

记录R开发过程中的一些小笔记

安装指定版本依赖包

背景:项目工程迁移到新环境的时候,需要执行install.packages重新安装包,这时候默认是安装新版本的依赖包,然后导致现有代码可能出现不兼容的情况。

解决:安装原项目工程的指定版本依赖包

  • 前往 CRAN 查看依赖包的历史版本
  • R 工程里安装指定版本
  • 安装脚本如下:
# 安装并加载 devtools 
install.packages("devtools")
library(devtools)

# 安装指定版本的包,例如 dplyr 的 1.0.0 版本
install_version("dplyr", version = "1.0.0")

⚠️ 注意:需要确保指定的版本存在于 CRAN 存档中。

验证安装的版本:

# 输出依赖包的版本号
packageVersion("dplyr")

macOS使用DBeaver迁移数据库

· 阅读需 2 分钟

背景

最近换电脑,重新搭建工作环境,需要把以前电脑上本地数据库的数据给迁移过来。

过程

我用的是DBeaver数据库管理工具,本次操作是基于该工具进行。

整体思路:利用数据库管理工具导出旧数据库结构和数据的.sql文件,然后在新的数据库中导入。

步骤

1、导出

旧的数据库结构及数据为.sql文件

  • 右键点击源数据库,选择“工具 - 转储数据库”,显示弹窗
  • “弹窗 - 选择需要导出的对象”:根据提示选择需要导出的数据库、表(可全选),点击“下一步”
  • “弹窗 - 导出配置”:选择导出的路径(默认就行),点击“开始”,等待导出完成

2、导入

把旧的数据导入到新数据库

  • “DBeaver - 左侧 - localhost - 数据库”:右键新建数据库,数据库名称、字符集、排序规则和旧数据库保持一致
  • “DBeaver”打开.sql文件
  • “工具栏 - 数据源”选择:本地环境localhost
  • “工具栏 - 数据库”选择:本地环境localhost下刚才新建的数据库
  • 点击“sql编辑器 - 面板左侧 - 执行 SQL 脚本”,等待执行完成

macOS上搭建新的工作环境

· 阅读需 4 分钟

背景

之前的电脑是Intel芯片的MacBook Pro,最近新入手了Apple M芯片的MacBook Pro,需要迁移工作环境,过程比预期的麻烦点,记录下相关的事情。

这里的“麻烦”,主要是因为旧的电脑用的很多年了,很多本地环境搭建好了很习惯了,新电脑从零恢复到原有顺手的环境需要一个时间。

迁移方案

macOS 迁移助理

搜索过两个macOS之间迁移的方案,发现可以用苹果的“迁移助理”可以无缝迁移,但是根据网友的反馈似乎存在不可控的问题,所以放弃了。 另外,以前用“时间胶囊”进行系统重装恢复,踩了坑,白白浪费几个小时。

所以本次还是选择手动迁移。资料通过 SSD 硬盘转移,速度很快。工作软件和配置信息逐步迁移。

手动迁移

数据迁移

数据迁移比较简单,我用固态硬盘,复制粘贴,基本1~2小时内可以搞定所有,比时间胶囊快多了。

软件迁移 ✅

考虑到一些环境配置或软件配置的原因,新的系统创建的用户名也和旧的保持一致。另外,macOS版本及芯片不一样,所以软件根据实际需求慢慢下载安装最新版本。

根据我的实际需求,分为日常实用、产品、开发几个方面。

我的软件列表

以前电脑上安装了很多软件,这次只优先安装了实用频率最高的。

基础软件

开发工具

开发环境

macOS 配置

终端 - 代理

  • .zshrc 代理配置(别名):
.zshrc
alias proxy="
export https_proxy=http://127.0.0.1:7897;
export http_proxy=http://127.0.0.1:7897;
export all_proxy=socks5://127.0.0.1:7897;"

alias unproxy="
unset https_proxy;
unset http_proxy;
unset all_proxy"
  • 终端临时代理(退出失效):
.zshrc
export https_proxy=http://127.0.0.1:7897 http_proxy=http://127.0.0.1:7897 all_proxy=socks5://127.0.0.1:7897

Homebrew

Apple M芯片安装Homebrew需额外添加到环境变量:

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"

终端 - Redis别名

  • .zshrc redis 别名配置:
.zshrc
# redis-server
alias redis="redis-server"

Rime 配置

squirrel.yaml
# 皮肤横排展示
style:
candidate_list_layout: linear # stacked | linear 皮肤横竖排显示是调整这个
default.yaml
# 候选词
menu:
page_size: 9 # 候选词个数

AI比腾讯云的工单更好用

· 阅读需 3 分钟

简介

最近写了一个小工具爬另一个网站的数据,在本地测试没问题,部署到腾讯上访问目标网站时提示连接异常java.net.ConnectException。借助 AI(Grok) 、腾讯云工单进行问题排查,最后还是靠 AI 解决问题。深切体会到腾讯云工单系统的落后与 AI 的良好体验。

问题排查过程

个人排查(AI - Grok)

  • 服务器第一次访问目标网站就失败,主观上排除 IP 拉黑的问题
  • 代码排查:因为同样的代码访问其他网站没问题,所以排除代码问题
  • 目标网站连接排查:按照 AI(Grok) 的指引进行ping、curl测试
  • 服务器网络配置检查
  • 服务器防火墙检查
  • DNS 检查
  • 网络连通性测试telnet、traceroute
  • 其他目标地址验证
  • 其他云连通性验证(腾讯云、华为云)

根据我自己及 AI(Grok) 的帮助排查了一轮,问题没有解决,也基本确定服务器配置没问题。然后提交腾讯云人工工单,并且附上了我的排查日志(命令及执行结果)。

腾讯云人工客服

  • 对话1:腾讯云人工工单并没有看日志,第一个回复是让我提交ping命令截图

(日志文件已包含该记录)

  • 对话2:反馈他那边没问题,让我换一个服务器试试

(我个人已测过,并有说明该情况。并提供防火墙配置日志)

总结:腾讯云的人工工单服务每次对话要等几分钟甚至10几分钟,他们内部也没有实用AI工具分析我的日志。排查的效率远比我自己的排查效率低。

最终结果

我问AI(Grok)如果IP被拉黑是否会存在该问题,得到可能答复后,我通过腾讯云集成的AI(deepseek)找到切换IP的功能,按照操作指引切换IP,问题解决。

这个服务器IP在我这里是第一次访问目标网站就被拦截,完全没想到老早之前就被拉黑了。

在整个问题解决的过程中,腾讯云人工工单给我的帮助是0 ,全是我自己靠 AI 搞定的。

CentOS 安装最新版本R环境及devtools

· 阅读需 2 分钟

使用CentOS默认的包管理器安装R的时候,安装版本是3.6.0 (2019-04-26),目前最新版是4.3.3 (2024-02-29)。本文介绍怎么在CentOS下安装最新版R

安装R

1、启用Linux (EPEL)扩展仓库

# Enable the Extra Packages for Enterprise Linux (EPEL) repository
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

2、启用可选仓库

sudo yum install yum-utils
sudo yum-config-manager --enable "rhel-*-optional-rpms"

3、指定R版本 我本地是4.2.3版本,所以服务器配置的和本地一致。(当前最新版本是4.3.3

export R_VERSION=4.2.3

4、下载R

curl -O https://cdn.rstudio.com/r/centos-7/pkgs/R-${R_VERSION}-1-1.x86_64.rpm

5、安装R

sudo yum install R-${R_VERSION}-1-1.x86_64.rpm

6、验证R是否安装成功

/opt/R/${R_VERSION}/bin/R --version

7、创建R符合链接

仅第一次安装需要

sudo ln -s /opt/R/${R_VERSION}/bin/R /usr/local/bin/R
sudo ln -s /opt/R/${R_VERSION}/bin/Rscript /usr/local/bin/Rscript

devtools安装

我在CentOS 8中直接安装install.packages("devtools")报错了, 因为没有gtk3环境,这里一起记录下解决方式

# Linux Shell
# 安装 gtk3
sudo yum install gtk3-devel
# 安装 libtiff
sudo yum install libtiff-devel

R命令窗口中执行以下命令

# R 脚本命令
# 依次执行下面命令,最后可以成功安装 devtools
install.packages("textshaping")
install.packages("ragg")
install.packages("devtools")

参考

Install R - posit Documentation R语言中安装devtools失败及解决办法 ragg - ft2build.h: No such file or directory

其他安装方式(不推荐)

包管理器

使用包管理器安装是最简单的,但是版本是3.6.0 (2019-04-26),因此不建议使用:

sudo yum install R

源码编译安装

太麻烦了,不建议

Docusaurus使用笔记

· 阅读需 1 分钟

小技巧

单页面搜索引擎优化

---  
title: 给搜索引擎看的标题;可能和正文标题不一样
slug: 自定义路径
description: 关于此页的简短描述
image: 在社交媒体卡片中显示的缩略图
keywords: [描述, 中心的, 关键词]
---

Obsidian Markdown支持语法

https://forum-zh.obsidian.md/t/topic/435

Docusaurus 官网文档

https://docusaurus.io/zh-CN/docs

  • 启动:npm start
  • 构建:npm run build

如何快速了解一行

· 阅读需 2 分钟

概况: 建立快速了解一行的框架思维,对于新事物新行业可以按照结构化思路套用学习方式。 典型的来说,产品经理行业里常说的需求分析方式、调研方式也会差不多。

简单的总结如下:

调研方法论

  • 1、确定目的、问题
  • 2、梳理调研计划(时间、地点、对象、内容)
  • 3、资料收集(研报、线下访谈、Google)
  • 4、资料分析(根据目的,有不同分析模板)
  • 5、输出结论

行业调研模板

  • 行业发展历程(发展史,过去、现状;行业生命周期理论
  • 宏观经济PEST分析(政治Politics、经济Economic、社会Society、技术Technology)
  • 行业细分领域(生产领域、市场领域划分再组合,方便战略制定)
  • 竞品分析
  • 结论
    • 行业认知:定义、上下游、行业厂商、用户
    • 输出行业分析、市场分析、商业模式

⏰ TODO

完善模板

  • 需求分析模板
  • 调研模板