Duplicate of my original post: https://troubleshoot-coltpython.blogspot.com/2013/11/bash-script-domain-expiration-check.html
This script checks if domain has expired and also supports e-mail notice.
Original script is from Matt (domain-check). I modifed already modified script from Vivek (http://www.cyberciti.biz/tips/domain-check-script.html).
List of changes:
– Added support for Slovenian (.si) domains.
– Added VAR for “mail from:”.
– Increased time between whois queries to 7 seconds (Slovenian whois only allows 10 queries per minute).
– Mail subject and mail data are translated to Slovene language.
– Changed default VAR path for mail (/bin/mail/ to /usr/bin/mail)
Get the script:
wget http://krejzi.si/files/domain-check;mv domain-check domain-check.sh;chmod +x domain-check.sh
Mirror: https://pastebin.com/pQe3RmDz
Usage:
Usage: ./domain-check.sh [ -e email ] [ -x expir_days ] [ -q ] [ -a ] [ -h ] {[ -d domain_namee ]} || { -f domainfile} -a : Send a warning message through email -d domain : Domain to analyze (interactive mode) -e email address : Email address to send expiration notices -f domain file : File with a list of domains -h : Print this screen -s whois server : Whois sever to query for information -q : Don't print anything on the console -x days : Domain expiration interval (eg. if domain_date < days)
Check single domain:
./domain-check.sh -d domain.si
Check single domain and send e-mail notice if domain will expire in less than defined in WARNDAYS:
./domain-check.sh -a -d domain.si
You can also check multiple domains. Create a file domains.txt and add your domains like:
domain1.com
domain2.com
domain3.com
Check multiple domains:
./domain-check.sh -f domains.txt
Check multiple domains and send e-mail notice if any domain will expire in less than defined in WARNDAYS:
./domain-check.sh -a -f domains.txt
Set your own parameters from command line. Next command will check domains in domains.txt with expiration date less than 60 days and send e-mail notice to admin@domain.si
./domain-check.sh -a -f domains.txt -e admin@domain.si -x 60
If you are going to use this script with cron, use -q option or change QUIET=”FALSE” to QUIET=”TRUE”
Let’s say we want to run this script every day at 4 AM. Open crontab with crontab -e (Ubuntu) and add the following line:
0 4 * * * /path/to/your/script/domain-check.sh -q -a -f /path/to/your/list/domains.txt