宝塔Linux面板提取含baidu.com(百度蜘蛛Baiduspider)日志

宝塔 Nginx 日志默认路径:/www/wwwlogs/你的域名.log

百度爬虫 UA 关键字:Baiduspider,包含 baidu.com 的一般是 referer 来源百度搜索,两种场景分开给你方案。

方案一:一次性提取(立即导出已有日志,简单,不用改配置)

SSH 终端执行,把包含 baidu.com 的行提取到单独文件: 

# 替换为你的真实域名日志
grep "baidu.com" /www/wwwlogs/www.test.com.log > /www/wwwlogs/baidu_refer.log

如果要提取百度蜘蛛 Baiduspider 爬虫记录(UA 里的百度爬虫,SEO 最常用): 

grep -i "Baiduspider" /www/wwwlogs/www.test.com.log > /www/wwwlogs/baidu_spider.log

  • > 覆盖写入;>> 追加写入,不会清空旧文件

  • -i 忽略大小写匹配

查看结果:cat /www/wwwlogs/baidu_spider.log

方案二:实时持续记录(Nginx 配置,新产生请求自动分到独立日志,推荐长期监控)

宝塔操作:网站 → 设置 → 配置文件,修改站点 nginx 配置,不要改 nginx.conf 主配置

方法 A map + if 条件(标准 Nginx,兼容宝塔,不破坏原有日志)

在站点server{}内部添加: 

map $http_user_agent $is_baidu_spider { default 0; ~*Baiduspider 1; } # 记录百度爬虫独立日志,原有access_log保留不变 access_log /www/wwwlogs/www.test.com.log main; access_log /www/wwwlogs/www.test.com_baiduspider.log main if=$is_baidu_spider;

如果你要匹配 referer 来源含baidu.com(从百度搜索跳转过来访客): 

map $http_referer $is_from_baidu { default 0; ~*baidu.com 1; } access_log /www/wwwlogs/www.test.com.log main; access_log /www/wwwlogs/www.test.com_baidu_refer.log main if=$is_from_baidu;

⚠️注意:map{} 不能写在 server {} 里面,必须写在 http {} 块内

  1. 宝塔 → Nginx →配置修改,打开nginx.conf,在http {内部放入 map 代码块

  2. 站点配置 server {} 里只放两行 access_log

  3. 保存,点击【配置检测】,无报错再重载 Nginx!

⚠️坑:宝塔面板会自动重写站点配置,如果你在网站设置里修改过网站,手动添加的 server 内配置有可能丢失,建议把 map 放在 nginx.conf 的 http 块内,这部分不会被覆盖。

方案三:定时脚本,每天自动把当日日志里 baidu 内容导出(宝塔计划任务)

适合不想修改 nginx 配置,每天自动生成百度日志。

  1. 新建脚本 /www/extract_baidu_log.sh

#!/bin/bash #替换域名 domain="www.test.com" src_log="/www/wwwlogs/${domain}.log" out_log="/www/wwwlogs/${domain}_baidu_daily.log" #提取百度爬虫,>>追加 grep -i "Baiduspider" ${src_log} >> ${out_log}

赋予执行权限: 

chmod +x /www/extract_baidu_log.sh

宝塔面板 →计划任务 →Shell 脚本,设置每天定时执行这个脚本。

重要风险提示

  1. 日志切割:宝塔自带日志切割,新增的自定义日志(xxx_baiduspider.log)不会自动切割,时间久会变得巨大。

    1. 解决:要么把自定义日志加入宝塔日志切割配置;要么用方案三脚本模式。

  2. 配置改完必须点配置检测,语法错误会直接 nginx 挂掉,网站打不开。

  3. 真实百度爬虫会反向 dns 验证,日志里 UA 含 Baiduspider 也有可能是伪造爬虫,有需要可以做反 DNS 校验。

常用调试命令 

#实时看百度爬虫实时访问 tail -f /www/wwwlogs/www.test.com_baiduspider.log #nginx配置语法检查 /www/server/nginx/sbin/nginx -t

本文网址: https://www.gd230.com/a/175.html