Skip to content

Instantly share code, notes, and snippets.

@fortunto2
Last active July 24, 2016 12:20
Show Gist options
  • Save fortunto2/d2fb7933bea576960fc2ba2a846739fc to your computer and use it in GitHub Desktop.
Save fortunto2/d2fb7933bea576960fc2ba2a846739fc to your computer and use it in GitHub Desktop.
Проверка доменов на доступность, срок окончания регистрации домена, логи, свободное место. Работает совместно с панель ispmanager через консольную утилиту mgrctl. Подробнее тут можно посмотреть http://ru.ispdoc.com/index.php/Mgrctl
#!/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="you@mail.ru"
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