Os pongo un script en Perl que comprueba si los servicios SQL Server están funcionando.
use Win32;
use Win32::Service;
use Time::localtime;
$tp = localtime; #for current
$variable= sprintf("%04d-%02d-%02d-%02d\n", $tp->year+1900, ($tp->mon)+1, $tp->mday);
$variable=~s/\s//g;
$user = Win32::LoginName();
$node = Win32::NodeName();
print "***********************************\n";
print " SQL SERVICES REPORT \n";
print " \n";
print "Creation Date: $variable\n";
print "User: $user\n";
print "Node: $node\n";
print "**********************************\n";
print "\n";
%state = (
0 => 'unknown',
1 => 'stopped',
2 => 'starting',
3 => 'stopping',
4 => 'running',
5 => 'resuming',
6 => 'pausing',
7 => 'paused',
8 => 'undefined', # used only by Show_Service.pl
);
@computers = (
" ServidorA",
" ServidorB",
" ServidorC",
" ServidorD"
);
sub ltrim($)
{
my $string = shift;
$string =~ s/^\s+//;
return $string;
}
foreach $Server (@computers) {
$Server= ltrim($Server);
#$key = shift;
$services= shift;
%status = shift;
%services = shift;
my ($key, $services, %status );
print "\nStatus on $Server:\n";
print "==========================================\n";
Win32::Service::GetServices($Server,\%services) or print "***ERROR: Can't retrieve the info from $Server\n";
foreach $key (sort keys %services){
if ($services{$key} =~ /SQL/){
Win32::Service::GetStatus( $Server, $services{$key}, \%status);
print "SERVICE: $key ,STATUS: $state{$status{CurrentState}} \n";
push @MyServices, $services{$key};
}}};
No hay comentarios:
Publicar un comentario