You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.0 KiB
49 lines
1.0 KiB
7 years ago
|
#!/usr/bin/bash
|
||
|
|
||
|
|
||
|
|
||
|
SCRIPTPATH="$( cd "$(dirname "$0")" ; pwd -P )"
|
||
|
source $SCRIPTPATH/servers.private
|
||
|
|
||
|
checkAllSites(){
|
||
|
eval server=( \${$1[@]} )
|
||
|
for site in ${server[@]}; do
|
||
|
printf "%-35s | %s \n" "$site" "$(checkURL $site)"
|
||
|
done
|
||
|
}
|
||
|
|
||
|
# This function takes 1 parameter, the name of an array in which to check a random URL
|
||
|
checkRandomSite(){
|
||
|
#The server variable will be equal to whichever server array we are looking at
|
||
|
eval server=( \${$1[@]} )
|
||
|
random=$(( ( RANDOM % (${#server[@]} - 1) ) + 1 ))
|
||
|
urlToCheck=${server[$random]}
|
||
|
echo $urlToCheck
|
||
|
echo $(checkURL $urlToCheck)
|
||
|
}
|
||
|
|
||
|
checkURL(){
|
||
|
responce=$(curl -s --head -w %{http_code} $1 -L -o /dev/null --connect-timeout 60)
|
||
|
echo $responce
|
||
|
}
|
||
|
|
||
|
if [ ! -z "$1" ]; then
|
||
|
if [ -z "$2" ]; then
|
||
|
checked=$(eval checkRandomSite $1)
|
||
|
checked=(${checked// / })
|
||
|
#echo ${checked[0]}
|
||
|
#echo ${checked[1]}
|
||
|
echo $1
|
||
|
echo ""
|
||
|
if [ "${checked[1]}" = "200" ]; then
|
||
|
echo "#00FF00"
|
||
|
else
|
||
|
echo "#FF8000"
|
||
|
fi
|
||
|
elif [ "$2" = "all" ]; then
|
||
|
checkAllSites $1
|
||
|
fi
|
||
|
else
|
||
|
echo Please specify a server name
|
||
|
fi
|