linux shell 查找网站中无效的链接

时间:2021-07-12
本文章向大家介绍linux shell 查找网站中无效的链接,主要包括linux shell 查找网站中无效的链接使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

要识别链接并从中找出无效链接,我们使用lynx和curl命令。其中lynx有一个选项-traversal,能够以递归方式访问网站页面并建立网站中所有超链接的列表。用curl验证每一个链接的有效性。

脚本如下:

#! /bin/bash

#文件名:find_broken.sh

#用途:查找网站中的无效连接

if [ $# -ne 1 ]

then

        echo -e "Usage:$0 URL \n"

        exit 1

fi

echo Broken links

mkdir /tmp/$$.lynx    #$$:表示当前脚本运行的进程号

cd /tmp/$$.lynx

lynx -traversal $1 > /dev/null

count=0

sort -u reject.data > links.txt      

#sort -u 与uniq命令基本相似,区别参考  https://blog.csdn.net/yilovexing/article/details/79237214

while read link

do

        output=`curl -I $link -s | grep "HTTP/.*OK"`

        if [[ -z $output ]]

        then

                echo $link

                let count++

        fi

done < links.txt

[ $count -eq 0 ] && echo echo No broken links found

工作原理:lynx -traversal URL会在工作目录下生成数个文件,其中包括reject.date,该文件包含网站中的所有链接。sort -u 用来建立一个不包含重复项的列表。然后我们迭代每一个链接,并通过curl -I检验接受到的响应头部。如果响应头部的第一行包含HTTP/1.0 200 OK,就表示该链接正常。

lynx命令

作用:终端上的纯文本模式的网页浏览器,没有JS引擎,不支持CSS排版、图形、音视频等多媒体信息。

格式:lynx [参数]

参数:

-case:搜索字符串时区分大小写

-ftp:关闭ftp功能

--color:激活彩色模式

--reload:更新首页代理服务器的缓存

--help:显示帮助

-traversal:以递归方式访问网站页面并建立网站中所有超链接列表。

原文地址:https://www.cnblogs.com/xiangbing123/p/15000718.html