Last active
July 24, 2016 12:20
-
-
Save fortunto2/d2fb7933bea576960fc2ba2a846739fc to your computer and use it in GitHub Desktop.
Проверка доменов на доступность, срок окончания регистрации домена, логи, свободное место. Работает совместно с панель ispmanager через консольную утилиту mgrctl. Подробнее тут можно посмотреть http://ru.ispdoc.com/index.php/Mgrctl
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#проверка сайтов по списку | |
echo "<<<---------------- www-check ------------------->>>" | |
SERVERFILE='/tmp/list/all.list' | |
/usr/local/ispmgr/sbin/mgrctl -m ispmgr wwwdomain | cut -d\ -f1 | cut -d\= -f2 >$SERVERFILE | |
ADMIN="[email protected]" | |
status_file="/tmp/list/www_status.txt" | |
DB_NAME=$(echo $DOMAIN | sed -e 's/\./_/g') | |
find $status_file -delete | |
date2stamp () { | |
date --utc --date "$1" +%s | |
} | |
stamp2date (){ | |
date --utc --date "1970-01-01 $1 sec" "+%Y-%m-%d %T" | |
} | |
dateDiff (){ | |
case $1 in | |
-s) sec=1; shift;; | |
-m) sec=60; shift;; | |
-h) sec=3600; shift;; | |
-d) sec=86400; shift;; | |
*) sec=86400;; | |
esac | |
dte1=$(date2stamp $1) | |
dte2=$(date2stamp $2) | |
diffSec=$((dte2-dte1)) | |
#if ((diffSec < 0)); then abs=-1; else abs=1; fi | |
echo $((diffSec/sec)) | |
} | |
while read DOMAIN | |
do | |
DOMAIN=`echo ${DOMAIN} | CHARSET=UTF-8 idn --quiet` #преобразовываем кирилические домены | |
otvet=`curl -o /dev/null --silent --head --write-out '%{http_code}\n' http://${DOMAIN}` | |
if [ "$otvet" != "200" -a "$otvet" != "301" -a "$otvet" != "302" -a "$otvet" != "503" -a "$otvet" != "401" ]; then | |
if [ "$otvet" == "400" ]; then kod="Домен не продлен "; else kod=`curl -I -s "http://$DOMAIN" | grep -i "HTTP/" | sed -e 's/HTTP\/1.1//g'`; fi | |
echo "$DOMAIN" : $otvet - $kod | |
echo "http://$DOMAIN" : $otvet - $kod>> $status_file | |
#curl http://${DOMAIN} | grep -i "<title>" | |
fi | |
done < $SERVERFILE | |
echo "<<<---------------- выходит срок доменов ------------------->>>" | |
echo "<<<********** выходит срок доменов *************>>>" >> $status_file | |
while read DOMAIN | |
do | |
DOMAIN=`echo ${DOMAIN} | CHARSET=UTF-8 idn --quiet` #преобразовываем кирилические домены | |
poddomen=`echo ${DOMAIN} | cut -d\. -f3` | |
if [ "$poddomen" == "" ]; then | |
otvet=`curl -o /dev/null --silent --head --write-out '%{http_code}\n' http://${DOMAIN}` | |
paidtill=`whois -l ${DOMAIN} | grep paid | cut -d\: -f2 | sed 's/^[ \t]*//;s/[ \t]*$//'` | |
if [ "$paidtill" == "" ]; then paidtill=`whois ${DOMAIN} | grep Expiry | cut -d\: -f2 | sed 's/^[ \t]*//;s/[ \t]*$//' | cut -d\T -f1 `; fi | |
if [ "$paidtill" == "" ]; then paidtill=`whois ${DOMAIN} | grep "Expiration date" | cut -d\: -f2 | sed 's/^[ \t]*//;s/[ \t]*$//'`; fi | |
if [ "$paidtill" == "" ]; then paidtill=`whois ${DOMAIN} | grep "Registration Expiration Date" | cut -d\: -f2 | sed 's/^[ \t]*//;s/[ \t]*$//'`; fi | |
#date1=$(date -d "`date +%m/%d/%y` +14 day" +%s) | |
date2=`echo $paidtill | sed "s/\./-/g"` | |
#echo $date2 | |
dnei=`dateDiff -d "now" "$date2"` | |
#echo $dnei | |
if [ "$dnei" -lt "14" ] ; then echo "$DOMAIN - $paidtill - через $dnei дней" | |
echo "$DOMAIN - $paidtill - через $dnei дней" >> $status_file | |
fi | |
fi | |
done < $SERVERFILE | |
echo "------- подбор паролей --------------" >> $status_file | |
echo `sudo cat /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c` >> $status_file | |
echo "------- место на дисках --------------" >> $status_file | |
echo `df -h | grep md2` >> $status_file | |
mutt -s "www-status" $ADMIN < $status_file |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment