User Tools

Site Tools


howtos:domain_renewal_check
no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Last revision
howtos:domain_renewal_check [02/12/2018 21:34] – created - external edit 127.0.0.1
Line 1: Line 1:
 +<file>
 +#!/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
 +</file>
 +
 +Mail template:
 +
 +<file>
 +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> :-$&nbsp; </span></span><u><i><b>Husk
 +                    at forny dom&aelig;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--
 +</file>
howtos/domain_renewal_check.txt · Last modified: 16/02/2023 07:11 by domingo