An IPv6 address can be very long as it is a 128 bits one. Asking someone verbally to check the connectivity to a given address can be tricky :-)
There are however some rules to shorten it and it’s a way to remove zeros.
Rule 1: Suppress leading zeros
Remove all leading zeros, the left side zeros, in every 16 bits field.
will be simplified to
Rules 2: The larger sequence of
:0:0: can be reduced to
You can compact a sequence of zeros to the symbol
Applying the rule to
2001:db8:0:0:0:0:0:1 would get us
- You can’t compact just one
:0: – only a sequence.
- If there is more than one sequence of
:0: you can only compact the large one. If they have the same length compact the first one.
2001:db8::1:1:1:1:1 is not correct. It must be
2001:0:0:1:0:0:0:1 will become
2001:db8:0:0:1:0:0:1 will become
Some days ago one of my sites certificate expired. I didn’t pay attention to the Let’s Encrypt periodic warning emails – I’m using the DNS-01 challenge.
I must create a simple script to check how many days are left and install it as a cron job.
After some search I found that
date could do it.
$ curl https://thejoyofstick.com -vI --stderr - | grep "expire date:" | cut -d: -f 2-
Jun 25 17:26:52 2022 GMT
$ date --date='Jun 25 17:26:52 2022 GMT' '+%s'
$ date '+%s'
$ echo '(1656178012-1649805603)/86400' | bc
We now have a way to calculate how many days are left.
You can build a bash script with these and, after checking for a countdown days threshold, send yourself a proper alert email.
For myself I’m using a perl script based on this one
use strictures 2;
use Date::Simple ( 'date', 'today' );
my $site = shift || 'example.com';
my $client = IO::Socket::SSL->new("$site:443")
or die "error=$!, ssl_error=$SSL_ERROR";
my $cert = $client->peer_certificate();
my $time = Net::SSLeay::X509_get_notAfter($cert);
my $asn_t = Net::SSLeay::P_ASN1_TIME_get_isotime($time);
my ($date) = split /T/, $asn_t;
my $diff = date($date) - today;
my $warning_time = 15;
print "Expire date: $date\n";
print "How many days left: $diff\n";
print "Warning before $warning_time days\n";
Added a personal email module to send a message if
$diff is less than
$warning_time and then cron with it.
Update: still valid for Ubuntu 20.04 LTS and 22.04 LTS !!!
Where are the MIB files ?
I’m in the middle of upgrading old servers and I found Ubuntu starting on 12.04 didn’t install the MIB files. Even if you install the SNMP applications. It was really strange to launch
tkmib and just see a couple of nodes.
The explanation is simple. Just check the preamble of
# As the snmp packages come without MIB files due to license reasons, loading
# of MIBs is disabled by default. If you added the MIBs you can reenable
# loaging them by commenting out the following line.
Sure, but how can I install them ?
Fortunately there is a package to deal with that.
$ sudo apt-get install snmp-mibs-downloader
It will download the IETF MIB files and install them under the usual
If for any reason you don’t see it happen force it with
$ sudo download-mibs
You can repeat this command later to update any new MIB file.
Well, almost. At this time your tools still won’t work correctly. Just remember the text on
/etc/snmp/snmp.conf. You have to comment out the
mibs : line! Now everything is by the book. Enjoy!
Install HP Support Software in your Ubuntu server