Shell 分析网站日志生成404死链文件

更新时间:2018-10-06 分类:网络营销 浏览量:1519

Shell 分析网站日志生成404死链文件

网站进行改版或是迁移,或者对于某些内容涉及敏感话题进行删除等,都会造成网站的页面 404 ,无法正常访问链接。如果知道某个链接是 404 ,那还比较简单,直接提交给搜索引擎,比如百度站长平台的死链提交。但是,如果因某些因素造成的 404 死链,导致搜索引擎蜘蛛爬虫大量爬取 404 链接,那么会造成网站运营的不便。如何减少这种情况的产生呢?通过 Shell 脚本分析网站日志可以获得 404 链接。

Shell 脚本代码:


#!/bin/bash
#Desc: Death Chain File Script
#Author: ZhangGe
#Blog: http://zhangge.net/5038.html
#Date: 2015-05-03
#初始化变量
#定义蜘蛛UA信息(默认是百度蜘蛛)
UA='+http://www.baidu.com/search/spider.html'
 
#前一天的日期(nginx日志)
DATE=`date +%Y-%m-%d -d "1 day ago"`
 
#定义日志路径
logfile=/home/wwwlogs/zhangge.net_${DATE}.log
 
#定义死链文件存放路径
deathfile=/home/wwwroot/zhangge.net/death.txt
 
#定义网站访问地址
website=http://zhangge.net
 
#分析日志并保存死链数据
for url in `awk -v str="${UA}" '$9=="404" && $15~str {print $7}' ${logfile}`
do
        grep -q "$url" ${deathfile} || echo ${website}${url} >>${deathfile}
done

使用说明:

①、脚本适用于每天都做了日志切割的Nginx

②、保存为 shell 脚本,比如 deathlink.sh,然后如下建立任务计划:

③、执行后,将在网站根目录生成死链文件:death.txt,可以浏览器访问看看内容

④、前往前往百度站长平台提交这个死链文件

详情可参考@张戈博客