Auf Arbeit haben wir die i-doit Subskriptionversion laufen. Die Lizenz ist natürlich diese Woche abgelaufen, ohne dass ich das mitbekommen habe. Leider. Man hat sowas zwar im Hinterkopft, aber dann vergisst man es dennoch. Dem Support von i-doit, der Firma synthetics kann man an dieser Stelle nur ein Lob aussprechen, da kurzfristig eine 1 Monat lang gültige Lizenz zur Verlängerung erstellt wurde, bis der ganze Prozess für die richtige Lizenz abgeschlossen ist.
Damit dies nicht mehr passiert ist schnell ein Skript entstanden, was die Gültigkeit der Lizenz checkt.
Hier mal der Code und ganz unten, ein paar Notizen zum einbinden des Checkskriptes:
#!/usr/bin/perl -w
use strict;
use DBI;
use Date::Calc qw(Delta_Days);
use Time::localtime;
#check_idoit_licence
#skript fuer nagios um den idoit-lizenzablauf zu checken
#version: 0.0.1
#datum: 08.03.2012
#autor: cmdrhenner()googlemail.com
#nagios-standard-hash
my %ERRORS=('OK'=>0,'WARNING'=>1,'CRITICAL'=>2,'UNKNOWN'=>3,'DEPENDENT'=>4);
#db-parameter
my $connection = "DBI:mysql:idoit";
my $dbhost = "DBSERVER";
my $mysqluser = "DBUSER";
my $mysqlpass = "DBPASS";
my $dbh = DBI->connect("$connection;host=$dbhost","$mysqluser","$mysqlpass") or die "DB ERROR $DBI::errstr\n";
my $select = "select from_unixtime(isys_licence__expires) from isys_licence";
my $sth_select = $dbh->prepare($select);
$sth_select->execute();
if($sth_select->rows == 0)
{
print "WARNING, keine Lizenzen hinterlegt\n";
exit $ERRORS{"WARNING"};
$dbh->disconnect();
}
else
{
my $licdate;
while (my @results = $sth_select->fetchrow())
{
$licdate = $results[0];
}
$dbh->disconnect();
#datumsberechnung
my(@date1) = split(" ",$licdate);
my($year1,$month1,$day1) = split('-',$date1[0]);
my $days_with_licence = Delta_Days(localtime->year()+1900,localtime->mon() + 1,localtime->mday(),$year1,$month1,$day1);
if($days_with_licence < 7)
{
print "ERROR, IDOIT-Lizenz laeuft in $days_with_licence Tagen ab\n";
exit $ERRORS{"ERROR"};
}
if(($days_with_licence >= 7) and ($days_with_licence <= 15))
{
print "WARNING, IDOIT-Lizenz laeuft in $days_with_licence Tagen ab\n";
exit $ERRORS{"WARNING"};
}
if($days_with_licence > 15)
{
print "OK, IDOIT-Lizenz laeuft in $days_with_licence Tagen ab\n";
exit $ERRORS{"OK"};
}
}
#eintrag commands.cfg
#define command{
# command_name check_idoit_lic
# command_line $USER1$/check_idoit_licence.pl
#}
#service definition
#define service{
# name idoit-lic
# use local-service
# host_name srv-idoit
# service_description IDOIT LIZENZ
# check_command check_idoit_lic
# }