百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>服务器> linux中利用Shell脚本自动提交网站404死链到搜索引擎
分享文章到:

linux中利用Shell脚本自动提交网站404死链到搜索引擎

发布时间:01/15 来源: 浏览: 关键词:
Shell脚本可以做很多的事情了,现在百度抓取出问题很多站长都在想办法了,今天我们来为各位介绍使用Shell脚本自动提交网站404死链到搜索引擎,有兴趣的可进入来看看。


Shell脚本

说做就做,简单的写了个 Shell 脚本就搞定了!

脚本名称:网站死链生成脚本

脚本功能:每天定时分析网站前一天的 nginx 日志, 然后提取状态码为404并且UA为百度蜘蛛的抓取路径,并写入到网站根目录下的 death.txt 文件,用于提交百度死链。
脚本代码:

 

#!/bin/bash
#Desc: Death Chain File Script
#Author: ZhangGe
#Blog: http://你的域名/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/你的域名_${DATE}.log
 
#定义死链文件存放路径
deathfile=/home/wwwroot/你的域名/death.txt
 
#定义网站访问地址
website=http://你的域名
 
#分析日志并保存死链数据
for url in `cat  ${logfile} | grep -i "${UA}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'`
do
        grep "$url" ${deathfile} >/dev/null || echo ${website}${url} >>${deathfile}
done

使用说明:

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

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


#执行如下命令编辑任务计划
[root@Mars_Server ~]# crontab -e
 
#每天凌晨1点执行此脚本
0 1 */1 * * /root/death.sh >/dev/null 2>&1
 
#按下ESC,然后键入 :wq 保存并退出
③、执行后,将在网站根目录生成死链文件:death.txt,可以浏览器访问看看内容,比如:
http://你的域名/death.txt

④、前往立即前往提交这个死链文件即可:


这样一来,系统会每天执行脚本,将昨天的百度蜘蛛爬到的404路径保存到网站根目录下的 death.txt,以备百度死链抓取工具前来抓取。
值得说明的是,这些死链记录是累加的,已保存的死链数据,就算百度蜘蛛不爬了也会继续保存,需要人工清理,不过一般不清理也没啥问题。
注意事项:如果你的 nginx服务 并没有配置相应的 access 日志,请自行在 server 下添加所需网站的 access 日志,否则脚本无法使用。
三、其他拓展

①、如果你之前没有做过 Nginx 日志切割,那么可以直接用下面这个脚本来一次性搞定:

 

#!/bin/bash
#Desc: Cut Nginx Log and Create Death Chain File
#Author: ZhangGe
#Blog: http://你的域名/5038.html
#Date: 2015-05-03
 
#①、初始化变量:
#定义access日志存放路径
LOGS_PATH=/home/wwwlogs
 
#定义蜘蛛UA信息(默认是百度蜘蛛)
UA=+http://www.baidu.com/search/spider.html
 
#定义网站域名(需要先给相应的网站以域名形式配置了nginx日志,比如你的域名.log)
DOMAIN=你的域名
 
#定义前一天日期
DATE=`date +%Y-%m-%d -d "1 day ago"`
 
#定义日志路径
logfile=/home/wwwlogs/你的域名_${DATE}.log
 
#定义死链文件存放路径
deathfile=/home/wwwroot/你的域名/death.txt
 
#定义网站访问地址
website=http://你的域名
 
#②、Nginx日志切割
mv ${LOGS_PATH}/${DOMAIN}.log ${LOGS_PATH}/${DOMAIN}_${DATE}.log
kill -USR1 `ps axu | grep "nginx: master process" | grep -v grep | awk '{print $2}'`
#可选功能: 自动删除30天之前的日志,可自行修改保存时长。
cd ${LOGS_PATH}
find . -mtime +30 -name "*20[1-9][3-9]*" | xargs rm -f
 
 
#③、网站死链生成(百度专用)
#分析日志并保存死链数据
for url in `cat  ${logfile} | grep -i "${UA}" | awk '{print $7 " " $9}' | grep " 404" | awk '{print $1}'`
do
        grep "$url" ${deathfile} >/dev/null || echo ${website}${url} >>${deathfile}
done

②、其他WEB服务器,比如 Apache 或 IIS,只要参考脚本思路,修改成实际的路径或日志字段,同样可以写一个相同功能的 Shell 或 Batch 脚本,有需求的朋友自己去研究折腾吧!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有2人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板