Files
2024-10-14 00:08:40 +02:00

105 lines
3.1 KiB
Perl

# Skript prüft xmicfsp007 und xmicfsp008 ab 6 Uhr morgens ob die Xetra Architektur komplett gestartet ist.
# Sobald eine MISS komplett gestartet ist erfolgt eine Benachrichtigung.
# Sollte keine MISS bis 6.25 Uhr komplett gestartet sein, erfolgt ebenfalls eine Benachrichtigung
#!/usr/bin/perl
use Control::CLI;
use strict;
my @rec = qw /technik@icfsystems.de/;
my $M1="emicssp01";
my $M2="emicssp02";
while (1) {
my $retM1=1;
my $retM2=1;
my ($ss,$mm,$hh,$dd,$mon,$yy,$we,$doy,$st)=localtime;
$mon+=1;
$yy+=1900;
printf "Prüfung am %02d.%02d.%4d um %02d:%02d", $dd, $mon, $yy, $hh, $mm;
$retM1 = check2("$M1");
$retM2 = check2("$M2");
if ($retM1 == 0 or $retM2 == 0) {
# Mail!
foreach (@rec) {
open FH, ">$$.txt";
printf FH "Die Eurex Architektur ist angestartet.\n\n";
printf FH "Prüfung am %02d.%02d.%4d um %02d:%02d\n\n", $dd, $mon, $yy, $hh, $mm;
if ($retM1==0) {
printf FH "$M1 ok\n";
}
else {
printf FH "$M1 nicht ok\n";
}
if ($retM2==0) {
printf FH "$M2 ok\n";
}
else {
printf FH "$M2 nicht ok\n";
}
close FH;
`clemail -to $_ -subject \"Eurex Architektur (Solaris) vom $dd.$mon.$yy\" -bodyfile $$.txt -from hotline\@icfsystems.de -smtpserver 130.35.0.141 -smtpport 25`;
unlink "$$.txt";
}
exit 0;
}
elsif($hh >= 6 and $mm >= 30) {
# Mail!
foreach (@rec) {
open FH, ">$$.txt";
printf FH "Die Eurex Architektur ist nicht angestartet.\n\n";
printf FH "Prüfung am %02d.%02d.%4d um %02d:%02d\n\n", $dd, $mon, $yy, $hh, $mm;
printf FH "Keine MISS ist vollständig angestartet.\n";
close FH;
`clemail -to $_ -subject \"Eurex Architektur (Solaris) vom $dd.$mon.$yy !!FEHLER!!\" -bodyfile $$.txt -from hotline\@icfsystems.de -smtpserver 130.35.0.141 -smtpport 25`;
unlink "$$.txt"
}
exit 1;
}
sleep 60;
}
sub check {
my ($MISS)=@_;
my $ret=0;
my @result = `psexec -u icfsystems\\gateadm -p bl0kkent0n \\\\$MISS cmd /c "d: & cd d:\\opt\\gate\\base90\\bin & set SYS_CONFIG_FILE=..\\cfg\\configsys.ini & mmg XERVICE"`;
my $count;
$count=@result;
$ret=1 if ($count == 0);
foreach(@result) {
$ret=1 if ($_ =~ /UNAVAILABLE/);
$ret=1 if ($_ =~ /BASIC_ARCHITECTURE is down/);
$ret=1 if ($_ =~ /Cannot connect to process/);
}
return $ret;
}
sub check2 {
my ($MISS)=@_;
my $ret=0;
my $res;
my @result;
my $cli = new Control::CLI('TELNET');
$cli->connect($MISS);
$cli->login(
Username => 'gateadm',
Password => 'eurexpwd',
);
$cli->cmd("bash");
$cli->cmd("cd /opt/gate/base90/bin");
$cli->cmd("SYS_CONFIG_FILE=../cfg/configsys.ini");
$cli->cmd("export SYS_CONFIG_FILE");
@result=$cli->cmd("./mmg XERVICE");
$cli->disconnect;
my $count;
$count=@result;
$ret=1 if ($count == 0);
foreach(@result) {
$ret=1 if ($_ =~ /UNAVAILABLE/);
$ret=1 if ($_ =~ /BASIC_ARCHITECTURE is down/);
$ret=1 if ($_ =~ /Cannot connect to process/);
}
return $ret;
}