Internet Domains and WHOIS

check_domain_jwhois.sh

Description:

Bash script plugin to alert on expiring domain names. Uses jwhois (developed on CentOS). Warning at 30 days, critical at 14.

Current Version

Last Release Date

2014-01-17

Compatible With

  • Nagios 1.x
  • Nagios 2.x
  • Nagios 3.x

Project Notes
##### Created by Joe McShinsky ##### #! /bin/bash if [ $# -ne 1 ] then echo "Usage: $0 [domain name]" exit 1 fi getDate=`jwhois $1 | grep Expir` expireDate=`echo "$getDate" | cut -d":" -f2-22 | cut -c1-11` currentDate=`date +%s` expireDate=`date +%s --date="$expireDate"` ### Difference between expiration and right now timeDiffSec=`expr $expireDate - $currentDate` ### Convert to days (86400 seconds in a day) timeDiffDays=`expr $timeDiffSec / 86400` if [ $timeDiffDays -lt 15 ] then echo "CRITICAL: $timeDiffDays Left Until Domain Expiration" exit 2 fi if [ $timeDiffDays -lt 31 ] then echo "WARNING: $timeDiffDays Left Until Domain Expiration" exit 1 fi if [ $timeDiffDays -gt 30 ] then echo "OK: $timeDiffDays Left Until Domain Expiration" exit 0 fi echo "Oops! Check the script for any required updates" exit 1
Reviews (2) Add a Review
Updated to support a few other TLD's
by 72mm, March 31, 2014

Adding a few lines to better parse the expiration date.. it's a bit crude, but it's works ###### #! /bin/bash if [ $# -ne 1 ] then echo "Usage: $0 [domain name]" exit 1 fi getDate=`jwhois $1 | grep Expir` FIRST_WORD=`echo $getDate | cut -d " " -f1` case $FIRST_WORD in Registrar) expireDate=`echo $getDate | cut -d " " -f5`;; Registry) expireDate=`echo $getDate | cut -d " " -f4 | cut -d "T" -f1`;; Domain) expireDate_1=`echo $getDate | tr -s | cut -d ":" -f2-22 | sed -e 's/S*(:)S*//g' -e 's/ GMT //g'` expireDate=`date -d "$expireDate_1" +%Y-%m-%d`;; esac currentDate=`date +%s` expireDate=`date +%s --date="$expireDate"` ### Difference between expiration and right now timeDiffSec=`expr $expireDate - $currentDate` ### Convert to days (86400 seconds in a day) timeDiffDays=`expr $timeDiffSec / 86400` if [ $timeDiffDays -lt 15 ] then echo "CRITICAL: $timeDiffDays Left Until Domain Expiration" exit 2 fi if [ $timeDiffDays -lt 31 ] then echo "WARNING: $timeDiffDays Left Until Domain Expiration" exit 1 fi if [ $timeDiffDays -gt 30 ] then echo "OK: $timeDiffDays Left Until Domain Expiration" exit 0 fi



Worked for several domains, not for all
by GraveD, January 31, 2014

The first domain expiration plugin I managed to work somehow. But still doesn't work for all domains. It seems to be not plugin, but jWhois problem. $ ./check_jwh.sh microsoft.com CRITICAL: 0 Left Until Domain Expiration $ $ jwhois microsoft.com [Cached] [whois.markmonitor.com] $



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
3.5 (2)
Favorites
0
Views
28,006