#!/bin/bash
TO="domingo@domingo.dk"
FROM="root@domingo.dk"
DBLIST=$(mysql -uroot -pPASSWORD -B -e "use postfixadmin; select domain from domain;"| egrep -v "ALL|domain")
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*abs))
}
mail (){
local DOMAIN="$1"
local OWNER="$2"
local DAYSLEFT="$3"
local TO="$4"
local FROM="$5"
local NSERVER="$6"
cp /root/domain_check/mail-template.msg /tmp/domain_check.$$
sed -e "s/DOMAIN/$DOMAIN/g" \
-e "s/OWNER/$OWNER/g" \
-e "s/DAYSLEFT/$DAYSLEFT/g" \
-e "s/TO/$TO/g" \
-e "s/FROM/$FROM/g" \
-e "s/NSERVER/$NSERVER/g" /tmp/domain_check.$$ | sendmail -i -f $FROM -- $TO
}
for i in $DBLIST
do
whois $i > /tmp/whois.$$
OWNER=$(cat /tmp/whois.$$ | egrep -i "owner:|^name:|^Registrant Name:" | awk '{print ($2,$3,$4)}' | sort -u | cut -d: -f2)
EXPIREDATE=$(cat /tmp/whois.$$ | egrep -i "^expires|^Expiration Date" | awk '{print $2'} | cut -d: -f2)
EXPIRES=$(date --rfc-3339=date --date $EXPIREDATE)
TODAY=$(date "+%Y-%m-%d")
DAYSLEFT=$(dateDiff -d $TODAY $EXPIRES)
NS=$(cat /tmp/whois.$$ | egrep -i "^nserver|^hostname|name server"| awk '{print $2}'| cut -d: -f2)
NSERVER=$(echo $NS| sed -e "s/ /\, /g")
echo $i is owned by $OWNER for the next $DAYSLEFT
if [ $DAYSLEFT -lt 3000 ]
then
mail $i "$OWNER" $DAYSLEFT $TO $FROM "$NSERVER"
fi
sleep 2
rm /tmp/whois.$$
done
Mail template:
From: "din System Administrator" <FROM>
MIME-Version: 1.0
To: TO
Subject: \\\///\\\///### =?ISO-8859-1?Q?DOM=C6NE_ALARM_FOR_DOMAIN_?=
=?ISO-8859-1?Q?=23=23=23=5C=5C=5C///=5C=5C=5C///?=
Content-Type: multipart/alternative;
boundary="------------090809090805040807050202"
This is a multi-part message in MIME format.
--------------090809090805040807050202
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
:-$ _/*Husk at forny domænet DOMAIN*/:-$ _
Der er _/*DAYSLEFT*/_ dage tilbage
Ejer: OWNER
Name Servers: NSERVER
--------------090809090805040807050202
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<meta http-equiv="content-type" content="text/html;
charset=ISO-8859-1">
<div align="center"><big><big><big><small><span
class="moz-smiley-s12"><span> :-$ </span></span><u><i><b>Husk
at forny domænet DOMAIN</b></i><span
class="moz-smiley-s12"><span> :-$ </span></span></u><br>
<br>
</small></big></big></big>
<div align="left">Der er <u><i><b><font color="#ff0000">DAYSLEFT</font></b></i></u>
dage tilbage<br>
<br>
<br>
Ejer: Thomas Dahlmann <br>
Name Servers: NSERVER <br>
<br>
</div>
</div>
</body>
</html>
--------------090809090805040807050202--