usage
$ source http-status-checker.functions.sh && get-links example.com | http-check-bulk
200 http://www.iana.org/domains/example
http status checker
download#!/bin/bash
function http-status-check {
# export TERM=xterm-color
# export GREP_OPTIONS='--color=auto' GREP_COLOR='1;32'
# export CLICOLOR=1
# export LSCOLORS=ExFxCxDxBxegedabagacad
<span class="nv">NORMAL</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[0m'</span><span class="sb">`</span>
<span class="nv">RED</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[31m'</span><span class="sb">`</span>
<span class="nv">GREEN</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[0;32m'</span><span class="sb">`</span>
<span class="nv">LGREEN</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[1;32m'</span><span class="sb">`</span>
<span class="nv">BLUE</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[0;34m'</span><span class="sb">`</span>
<span class="nv">LBLUE</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[1;34m'</span><span class="sb">`</span>
<span class="nv">YELLOW</span><span class="o">=</span><span class="sb">`</span><span class="nb">echo</span> -e <span class="s1">'\033[0;33m'</span><span class="sb">`</span>
<span class="c1"># uri $1</span>
<span class="nv">URL</span><span class="o">=</span><span class="nv">$1</span>
<span class="nv">STATUS</span><span class="o">=</span><span class="s2">"</span><span class="k">$(</span>curl --connect-timeout <span class="m">1</span> -sL -w <span class="s2">"%{http_code}\\n"</span> <span class="s2">"</span><span class="si">${</span><span class="nv">URL</span><span class="si">}</span><span class="s2">"</span> -o /dev/null<span class="k">)</span><span class="s2">"</span>
<span class="k">if</span> <span class="o">[[</span> <span class="nv">$STATUS</span> -ne <span class="m">200</span> <span class="o">]]</span>
<span class="k">then</span>
<span class="nb">echo</span> <span class="s2">" </span><span class="si">${</span><span class="nv">YELLOW</span><span class="si">}</span><span class="s2"> </span><span class="nv">$STATUS</span><span class="s2"> </span><span class="si">${</span><span class="nv">RED</span><span class="si">}</span><span class="s2"> </span><span class="nv">$URL</span><span class="si">${</span><span class="nv">NORMAL</span><span class="si">}</span><span class="s2"> "</span>
<span class="k">else</span>
<span class="nb">echo</span> <span class="s2">" </span><span class="si">${</span><span class="nv">YELLOW</span><span class="si">}</span><span class="s2"> </span><span class="nv">$STATUS</span><span class="s2"> </span><span class="si">${</span><span class="nv">BLUE</span><span class="si">}</span><span class="s2"> </span><span class="nv">$URL</span><span class="s2"> </span><span class="si">${</span><span class="nv">NORMAL</span><span class="si">}</span><span class="s2">"</span>
<span class="k">fi</span>
}
function get-links () {
wget $1 -O - 2>/dev/null | grep -oP 'href="\Khttp:.+?"' | sed 's/"//' | sort
}
function http-check-bulk () {
command=$1
<span class="k">while</span> <span class="nb">read</span> p<span class="p">;</span> <span class="k">do</span>
http-status-check <span class="nv">$p</span>
<span class="k">done</span> </dev/stdin
}