#!/usr/bin/perl -w use strict; # # Set this script up as a cron job to have notification email sent whe +n a # domain is expiring. See the expires.lst file for the list of domains +. # NOTE: .edu domains are NOT supported at this time. # # You can also run it at the command line with the -v flag to see a li +st of # all domains and the expiration dates. # # Set the filename for the list of domains to be checked my $file = "expire.lst"; use Net::Domain::ExpireDate; use Time::Piece; use Time::Seconds; use Getopt::Std; use vars '%opts', '@expiration_list', ; getopts('v', \%opts); # Expand tilde $file =~ s{ ^ ~ ( [^/]* ) } { $1 ? (getpwnam($1))[7] : ( $ENV{HOME} || $ENV{LOGDIR} || (getpwuid($>))[7] ) }ex; open (FILE, "<$file") or die "Unable to open $file: $!"; my @domains = <FILE>; close FILE; my $today = localtime; foreach my $line (@domains) { chomp $line; next unless defined $line && $line && $line !~ /^#/; my ($domain, @days) = split(/ /, $line); my $date = expire_date($domain); my $expire_secs = $date - $today; my $expire_days = sprintf("%d", $expire_secs->days); print "---------------\nDomain = $domain\nExpiration = " . $date->st +rftime('%Y-%m-%d') . "\nExpires (days) = $expire_days\n" if $opts{'v' +}; LINE: foreach my $look_ahead (@days) { if ($expire_days == $look_ahead) { push @expiration_list, "$domain $expire_days"; last LINE; } } } # Now print the list of expiring domains print "\n\n=======================\n" if $opts{'v'}; foreach my $line (@expiration_list) { my ($domain, $expire_days) = split(/ /, $line); print "Domain '$domain' is expiring in $expire_days days.\n"; }
The input file:
# This is the data file for the expire.pl script. The domain name shou +ld # exclude www or other subdomain values. A reminder email will be sent + on each # of the days following the domain name. # Format of this file: # <domain name> <reminder days> perlmonks.org 30 15 7 mywebsite.com 45 30 15 7

In reply to Domain Name Expiration Reminder by knowmad

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.