Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
E
etersoft-admin-essentials
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
etersoft
etersoft-admin-essentials
Commits
af8be28b
Commit
af8be28b
authored
Feb 01, 2013
by
Алексей Дмитров
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Добавлен bash-скрипт проверки сайтов
parent
4e35fa26
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
268 additions
and
0 deletions
+268
-0
sites_on_host03.sh
web/sites_on_host03.sh
+268
-0
No files found.
web/sites_on_host03.sh
0 → 100755
View file @
af8be28b
#!/bin/bash
##
## - functions start
##
function
timer
()
{
echo
-n
"Идет проверка сайтов (может занять несколько минут): "
while
sleep
1
do
echo
-n
"* "
done
}
function
FatalError
()
{
echo
"Fatal error:
$1
"
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
}
function
checkEterhostIP
()
{
if
[
$#
-lt
1
]
;
then
FatalError
"wrong number of arguments"
;
fi
for
ip
in
$*
do
for
eterhost_mask
in
$Eterhost
do
checkEterhostNetmask
$ip
$eterhost_mask
if
[
$?
-eq
0
]
then
return
1
fi
done
done
return
0
}
function
checkEterhostNS
()
{
if
[
$#
-ne
1
]
;
then
FatalError
"wrong number of arguments"
;
fi
if
whois
$1
|
grep
-i
"ns[1|4].etersoft.ru"
&>/dev/null
then
return
1
fi
return
0
}
function
checkEterhostNetmask
()
{
if
[
$#
-ne
2
]
;
then
FatalError
"wrong number of arguments"
;
fi
netmask
=
$(
echo
$2
|
sed
"s/
\(
.*
\)\/\(
.*
\)
/
\2
/g"
)
if
[
"
$(
ipcalc
$1
/
$netmask
|
grep
Network: |
awk
'{print $2}'
)
"
!=
"
$2
"
]
then
return
1
fi
return
0
}
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}'
)
}
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:]"
)
}
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"
)
}
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
)
}
function
OutputResultList
()
{
((
count_total
=
$count_ok
+
$count_deleted
+
$count_not_eter
))
echo
"-----------------------------------"
echo
"----- Список сайтов (host03) ------"
title1
=
"#"
title2
=
"WWW:"
title3
=
"User:"
title4
=
"paid-till:"
index
=
0
while
[
$index
-ne
4
]
do
echo
"-----------------------------------"
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
i
=
0
output
$title1
$title2
$title3
$title4
for
site
in
${
SitesArray
[@]
}
do
user
=
${
UsersArray
[
$i
]
}
exp
=
${
ExpArray
[
$i
]
}
output
$((
$i
+
1
))
$site
$user
$exp
((
i++
))
done
((
index++
))
done
echo
"-----------------------------------"
echo
"Всего проверенных сайтов:
$count_total
"
}
##
## - functions end
##
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
timer &
timer_pid
=
$!
for
file
in
*
.conf
do
servername
=
$(
getServerName
$file
)
username
=
$(
getUserName
$file
)
if
[
-z
"
$servername
"
]
then
continue
fi
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++
))
continue
fi
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++
))
continue
fi
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++
))
fi
#logMessages "$servername" "OK"
SitesOK[
$count_ok
]=
$servername
UsersOK[
$count_ok
]=
$username
ExpOK[
$count_ok
]=
$expiration
((
count_ok++
))
sleep
1
done
kill
$timer_pid
2>/dev/null
echo
sleep
1
OutputResultList
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment