144 lines
3.8 KiB
Perl
144 lines
3.8 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 /a.wisniewski@icfsystems.de/;
|
|
|
|
my $ICF = 1; # Xetra xm7 xm8
|
|
#my $ICF = 2; # Eurex em5 em6
|
|
#my $ICF = 3; # Eurex em1 em2
|
|
|
|
my $SRV;
|
|
my $SYS;
|
|
my $M1;
|
|
my $M2;
|
|
my $USR;
|
|
my $PWD;
|
|
|
|
if ($ICF == 1) {
|
|
$SRV = "XETRA";
|
|
$SYS = "WIN";
|
|
$M1 = "xmicfsp007";
|
|
$M2 = "xmicfsp008";
|
|
$USR = "intern\\gateadm";
|
|
$PWD = "xetra";
|
|
}
|
|
if ($ICF == 2) {
|
|
$SRV = "EUREX";
|
|
$SYS = "WIN";
|
|
$M1 = "micssp5";
|
|
$M2 = "micssp6";
|
|
$USR = "icfsystems\\gateadm";
|
|
$PWD = "bl0kkent0n";
|
|
}
|
|
if ($ICF == 3) {
|
|
$SRV = "EUREX";
|
|
$SYS = "SUN";
|
|
$M1 = "emicssp01";
|
|
$M2 = "emicssp02";
|
|
$USR = "gateadm";
|
|
$PWD = "eurexpwd";
|
|
}
|
|
|
|
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;
|
|
|
|
if ($SYS eq "WIN") {
|
|
$retM1 = check("$M1");
|
|
$retM2 = check("$M2");
|
|
}
|
|
if ($SYS eq "SUN") {
|
|
$retM1 = check2("$M1");
|
|
$retM2 = check2("$M2");
|
|
}
|
|
|
|
if ($retM1 == 0 or $retM2 == 0) {
|
|
# Mail!
|
|
foreach (@rec) {
|
|
open FH, ">$$.txt";
|
|
printf FH "Die $SRV 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 \"$SRV Architektur ($SYS) 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 $SRV 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 \"$SRV Architektur ($SYS) 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 $USR -p $PWD \\\\$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 => $USR,
|
|
Password => $PWD,
|
|
);
|
|
$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;
|
|
} |