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

parent af8be28b
...@@ -18,16 +18,10 @@ function FatalError() { ...@@ -18,16 +18,10 @@ function FatalError() {
exit exit
} }
function logMessages() {
if [ $# -ne 2 ]; then FatalError "wrong number of arguments"; fi
echo "$1: $2"
}
function output() { function output() {
if [ $# -lt 3 ]; then FatalError "wrong number of arguments"; fi 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() { function checkEterhostIP() {
...@@ -52,7 +46,7 @@ function checkEterhostIP() { ...@@ -52,7 +46,7 @@ function checkEterhostIP() {
function checkEterhostNS() { function checkEterhostNS() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi 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 then
return 1 return 1
fi fi
...@@ -63,9 +57,9 @@ function checkEterhostNS() { ...@@ -63,9 +57,9 @@ function checkEterhostNS() {
function checkEterhostNetmask() { function checkEterhostNetmask() {
if [ $# -ne 2 ]; then FatalError "wrong number of arguments"; fi 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 then
return 1 return 1
fi fi
...@@ -76,84 +70,68 @@ function checkEterhostNetmask() { ...@@ -76,84 +70,68 @@ function checkEterhostNetmask() {
function getExpirationTime() { function getExpirationTime() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi 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() { function getServerName() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi 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() { function getUserName() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi 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() { function getSiteIpByDomain() {
if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi if [ $# -ne 1 ]; then FatalError "wrong number of arguments"; fi
#echo $(resolve $1 2>/dev/null | sed -e "s/^.*: //g") #echo $(resolve "$1" 2>/dev/null | sed -e "s/^.*: //g")
echo $(dig @8.8.8.8 $1 +short) 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() { function OutputResultList() {
((count_total=$count_ok+$count_deleted+$count_not_eter)) ((count_total=${Counts[$OK]}+${Counts[$DELETED]}+${Counts[$NOTETER]}))
echo "-----------------------------------" echo "-----------------------------------"
echo "----- Список сайтов (host03) ------" echo "----- Список сайтов (host03) ------"
title1="#" declare -a Title=(
title2="WWW:" [0]="#"
title3="User:" [1]="WWW:"
title4="paid-till:" [2]="User:"
[3]="paid-till:")
declare -a Infos=(
[$OK]="Рабочие сайты"
[$DELETED]="Недоступные сайты"
[$NOTETER]="Не находятся в сети Etersoft"
[$NOTETERNS]="NS записи не принадлежат Etersoft")
index=0 index=0
while [ $index -ne 4 ] for parts in ${ArrayParts[@]}
do do
echo "-----------------------------------" echo "-----------------------------------"
echo "$((index+1)). ${Infos[$index]}: ${Counts[$index]}"
if [ $index -eq 0 ]; then SitesArray=($(eval echo "\${Sites${parts}[@]}"))
echo "1) Рабочие сайты: $count_ok" UsersArray=($(eval echo "\${Users${parts}[@]}"))
ExpArray=($(eval echo "\${Exp${parts}[@]}"))
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
i=0 i=0
output $title1 $title2 $title3 $title4 output "${Title[0]}" "${Title[1]}" "${Title[2]}" "${Title[3]}"
for site in ${SitesArray[@]} for site in ${SitesArray[@]}
do do
user=${UsersArray[$i]} output "$((i+1))" "$site" "${UsersArray[$i]}" "${ExpArray[$i]}"
exp=${ExpArray[$i]}
output $(($i+1)) $site $user $exp
((i++)) ((i++))
done done
...@@ -171,90 +149,55 @@ function OutputResultList() { ...@@ -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" 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" cd "/etc/httpd2/conf/sites-enabled"
declare -a SitesOK OK=0
declare -a SitesDeleted DELETED=1
declare -a SitesNotEter NOTETER=2
declare -a SitesNotEterNS NOTETERNS=3
declare -a SitesArray
declare -a ArrayParts=(
declare -a UsersOK [$OK]="OK"
declare -a UsersDeleted [$DELETED]="Deleted"
declare -a UsersNotEter [$NOTETER]="NotEter"
declare -a UsersNotEterNS [$NOTETERNS]="NotEterNS")
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
timer & timer &
timer_pid=$! timer_pid=$!
for file in *.conf for file in *.conf
do do
servername=$(getServerName $file) servername=$(getServerName "$file")
username=$(getUserName $file) username=$(getUserName "$file")
if [ -z "$servername" ] if [ -z "$servername" ]
then then
continue continue
fi fi
ip=$(getSiteIpByDomain $servername) ip=$(getSiteIpByDomain "$servername")
expiration=$(getExpirationTime $servername) expiration=$(getExpirationTime "$servername")
if [ -z "$ip" ] if [ -z "$ip" ]
then then
#logMessages "$servername" "не отвечает" SaveSite "$DELETED" "$servername" "$username" "$expiration"
SitesDeleted[$count_deleted]=$servername
UsersDeleted[$count_deleted]=$username
ExpDeleted[$count_deleted]=$expiration
((count_deleted++))
continue continue
fi fi
checkEterhostIP $ip checkEterhostIP "$ip"
if [ $? -eq 0 ] if [ $? -eq 0 ]
then then
#logMessages "$servername" "сайт не находится в сети Etersoft" SaveSite "$NOTETER" "$servername" "$username" "$expiration"
SitesNotEter[$count_not_eter]=$servername
UsersNotEter[$count_not_eter]=$username
ExpNotEter[$count_not_eter]=$expiration
((count_not_eter++))
continue continue
fi fi
checkEterhostNS $servername checkEterhostNS "$servername"
if [ $? -eq 0 ] if [ $? -eq 0 ]
then then
#logMessages "$servername" "NS записи не принадлежат Etersoft" SaveSite "$NOTETERNS" "$servername" "$username" "$expiration"
SitesNotEterNS[$count_not_eter_ns]=$servername
UsersNotEterNS[$count_not_eter_ns]=$username
ExpNotEterNS[$count_not_eter_ns]=$expiration
((count_not_eter_ns++))
fi fi
#logMessages "$servername" "OK" SaveSite "$OK" "$servername" "$username" "$expiration"
SitesOK[$count_ok]=$servername
UsersOK[$count_ok]=$username
ExpOK[$count_ok]=$expiration
((count_ok++))
sleep 1 sleep 1
done 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