Оптимизация кода sites_on_host03.sh

parent af8be28b
......@@ -18,16 +18,10 @@ function FatalError() {
exit
}
function logMessages() {
if [ $# -ne 2 ]; then FatalError "wrong number of arguments"; fi
echo "$1: $2"
}
function output() {
if [ $# -lt 3 ]; then FatalError "wrong number of arguments"; fi
printf "%-3s %-30s %-25s %s\n" $1 $2 $3 $4
printf "%-3s %-30s %-25s %s\n" "$1" "$2" "$3" "$4"
}
function checkEterhostIP() {
......@@ -52,7 +46,7 @@ function checkEterhostIP() {
function checkEterhostNS() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
if whois $1 | grep -i "ns[1|4].etersoft.ru" &>/dev/null
if whois "$1" | grep -i "ns[1|4].etersoft.ru" &>/dev/null
then
return 1
fi
......@@ -63,9 +57,9 @@ function checkEterhostNS() {
function checkEterhostNetmask() {
if [ $# -ne 2 ]; then FatalError "wrong number of arguments"; fi
netmask=$(echo $2 | sed "s/\(.*\)\/\(.*\)/\2/g")
netmask=$(echo "$2" | sed "s/\(.*\)\/\(.*\)/\2/g")
if [ "$(ipcalc $1/$netmask | grep Network: | awk '{print $2}')" != "$2" ]
if [ "$(ipcalc "$1/$netmask" | grep Network: | awk '{print $2}')" != "$2" ]
then
return 1
fi
......@@ -76,84 +70,68 @@ function checkEterhostNetmask() {
function getExpirationTime() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
echo $(whois $1 | grep -e "\(Expiration Date\|paid-till\)" | sed -e "s/\(Expiration Date\|paid-till\):\(.*\)/\2/g" | awk '{print $1}')
echo $(whois "$1" | grep -e "\(Expiration Date\|paid-till\)" | sed -e "s/\(Expiration Date\|paid-till\):\(.*\)/\2/g" | awk '{print $1}')
}
function getServerName() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
echo $(grep -i -w ServerName $1 | sed -e "s/^ServerName //g" -e "s/ $//g" -e "s/[\t\n+]//g" | tr "[:upper:]" "[:lower:]")
echo $(grep -i -w ServerName "$1" | sed -e "s/^ServerName //g" -e "s/ $//g" -e "s/[\t\n+]//g" | tr "[:upper:]" "[:lower:]")
}
function getUserName() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
echo $(grep -i -w DocumentRoot $1 | sed -e "s/^DocumentRoot \"\/home\/\(.*\)\/www\/\(.*\)\"/\1/g")
echo $(grep -i -w DocumentRoot "$1" | sed -e "s/^DocumentRoot \"\/home\/\(.*\)\/www\/\(.*\)\"/\1/g")
}
function getSiteIpByDomain() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
#echo $(resolve $1 2>/dev/null | sed -e "s/^.*: //g")
echo $(dig @8.8.8.8 $1 +short)
#echo $(resolve "$1" 2>/dev/null | sed -e "s/^.*: //g")
echo $(dig @8.8.8.8 "$1" +short)
}
function SaveSite() {
((Counts[$1]++))
eval "Sites${ArrayParts[$1]}[${Counts[$1]}]=\"\$2\""
eval "Users${ArrayParts[$1]}[${Counts[$1]}]=\"\$3\""
eval "Exp${ArrayParts[$1]}[${Counts[$1]}]=\"\$4\""
}
function OutputResultList() {
((count_total=$count_ok+$count_deleted+$count_not_eter))
((count_total=${Counts[$OK]}+${Counts[$DELETED]}+${Counts[$NOTETER]}))
echo "-----------------------------------"
echo "----- Список сайтов (host03) ------"
title1="#"
title2="WWW:"
title3="User:"
title4="paid-till:"
declare -a Title=(
[0]="#"
[1]="WWW:"
[2]="User:"
[3]="paid-till:")
declare -a Infos=(
[$OK]="Рабочие сайты"
[$DELETED]="Недоступные сайты"
[$NOTETER]="Не находятся в сети Etersoft"
[$NOTETERNS]="NS записи не принадлежат Etersoft")
index=0
while [ $index -ne 4 ]
for parts in ${ArrayParts[@]}
do
echo "-----------------------------------"
echo "$((index+1)). ${Infos[$index]}: ${Counts[$index]}"
if [ $index -eq 0 ]; then
echo "1) Рабочие сайты: $count_ok"
SitesArray=("${SitesOK[@]}")
UsersArray=("${UsersOK[@]}")
ExpArray=("${ExpOK[@]}")
fi
if [ $index -eq 1 ]; then
echo "2) Недоступные сайты: $count_deleted"
SitesArray=("${SitesDeleted[@]}")
UsersArray=("${UsersDeleted[@]}")
ExpArray=("${ExpDeleted[@]}")
fi
if [ $index -eq 2 ]; then
echo "3) Не находятся в сети Etersoft: $count_not_eter"
SitesArray=("${SitesNotEter[@]}")
UsersArray=("${UsersNotEter[@]}")
ExpArray=("${ExpNotEter[@]}")
fi
if [ $index -eq 3 ]; then
echo "------------( Ошибки )-------------"
echo "4) NS записи не принадлежат Etersoft: $count_not_eter_ns"
SitesArray=("${SitesNotEterNS[@]}")
UsersArray=("${UsersNotEterNS[@]}")
ExpArray=("${ExpNotEterNS[@]}")
fi
SitesArray=($(eval echo "\${Sites${parts}[@]}"))
UsersArray=($(eval echo "\${Users${parts}[@]}"))
ExpArray=($(eval echo "\${Exp${parts}[@]}"))
i=0
output $title1 $title2 $title3 $title4
output "${Title[0]}" "${Title[1]}" "${Title[2]}" "${Title[3]}"
for site in ${SitesArray[@]}
do
user=${UsersArray[$i]}
exp=${ExpArray[$i]}
output $(($i+1)) $site $user $exp
output "$((i+1))" "$site" "${UsersArray[$i]}" "${ExpArray[$i]}"
((i++))
done
......@@ -171,90 +149,55 @@ function OutputResultList() {
Eterhost="91.232.225.0/24 212.176.200.16/28 89.104.102.0/28 87.249.47.40/29"
cd "/etc/httpd2/conf/sites-enabled"
declare -a SitesOK
declare -a SitesDeleted
declare -a SitesNotEter
declare -a SitesNotEterNS
declare -a SitesArray
declare -a UsersOK
declare -a UsersDeleted
declare -a UsersNotEter
declare -a UsersNotEterNS
declare -a UsersArray
declare -a ExpOK
declare -a ExpDeleted
declare -a ExpNotEter
declare -a ExpNotEterNS
declare -a ExpArray
count_total=0
count_ok=0
count_deleted=0
count_not_eter=0
count_not_eter_ns=0
OK=0
DELETED=1
NOTETER=2
NOTETERNS=3
declare -a ArrayParts=(
[$OK]="OK"
[$DELETED]="Deleted"
[$NOTETER]="NotEter"
[$NOTETERNS]="NotEterNS")
timer &
timer_pid=$!
for file in *.conf
do
servername=$(getServerName $file)
username=$(getUserName $file)
servername=$(getServerName "$file")
username=$(getUserName "$file")
if [ -z "$servername" ]
then
continue
fi
ip=$(getSiteIpByDomain $servername)
expiration=$(getExpirationTime $servername)
ip=$(getSiteIpByDomain "$servername")
expiration=$(getExpirationTime "$servername")
if [ -z "$ip" ]
then
#logMessages "$servername" "не отвечает"
SitesDeleted[$count_deleted]=$servername
UsersDeleted[$count_deleted]=$username
ExpDeleted[$count_deleted]=$expiration
((count_deleted++))
SaveSite "$DELETED" "$servername" "$username" "$expiration"
continue
fi
checkEterhostIP $ip
checkEterhostIP "$ip"
if [ $? -eq 0 ]
then
#logMessages "$servername" "сайт не находится в сети Etersoft"
SitesNotEter[$count_not_eter]=$servername
UsersNotEter[$count_not_eter]=$username
ExpNotEter[$count_not_eter]=$expiration
((count_not_eter++))
SaveSite "$NOTETER" "$servername" "$username" "$expiration"
continue
fi
checkEterhostNS $servername
checkEterhostNS "$servername"
if [ $? -eq 0 ]
then
#logMessages "$servername" "NS записи не принадлежат Etersoft"
SitesNotEterNS[$count_not_eter_ns]=$servername
UsersNotEterNS[$count_not_eter_ns]=$username
ExpNotEterNS[$count_not_eter_ns]=$expiration
((count_not_eter_ns++))
SaveSite "$NOTETERNS" "$servername" "$username" "$expiration"
fi
#logMessages "$servername" "OK"
SitesOK[$count_ok]=$servername
UsersOK[$count_ok]=$username
ExpOK[$count_ok]=$expiration
((count_ok++))
SaveSite "$OK" "$servername" "$username" "$expiration"
sleep 1
done
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment