#!/bin/bash TO="user@example.com" FROM="root@example.com" 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" 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
:-$  Husk at forny domænet DOMAIN :-$

Der er DAYSLEFT dage tilbage


Ejer: Thomas Dahlmann
Name Servers: NSERVER

--------------090809090805040807050202--