in reply to
Re^3: Need help with Perl multi threading
in thread Need help with Perl multi threading
Now this code:
#!/usr/bin/perl
use threads;
use strict;
use warnings;
use Net::SSH::Expect;
require 'total.pl';
my @servers = ('192.168.0.18','192.168.0.19','192.168.0.20');
my @process = ('testing','b','c');
my @threads;
my $output;
my $res;
my $final;
#@output = threads->new(\&Process_Output, $ssh, $proc )->join();
foreach my $host ( @servers )
{
threads->new(\&process, $host )->join();
}
sub process()
{
my $host = shift;
my $png = `ping -c1 $host`;
if ( $png =~ /64 bytes/ )
{
my $user= 'netcool';
my $ssh = &SSH_Reference($host,$user);
$ssh->run_ssh();
eval {$res=$ssh->read_all(); };
if ( !$@ && $res !~ /\(yes\/no\)/ && $res !~ m/password/ )
{
print "\nLogged in to $host\n";
foreach my $proc ( @process )
{
#push (@threads, threads->new(\&Process_Output, $s
+sh, $proc ));
$output=&Process_Output($ssh, $proc );
#print @output;
if ( $output =~ m/$proc/ )
{
print "\t$proc is runn
+ing\n";
}
else
{
print "\t$proc is not
+running\n";
}
}
$ssh->close();
}
else
{
print "Unable to SSH to $host\n";
}
}
else
{
print "\nUnable to ping to Host: $host\n";
}
}
produces this output:
perl some.pl
Unable to SSH to 192.168.0.18
Unable to SSH to 192.168.0.19
Unable to SSH to 192.168.0.20
Now again back to the stage where I have started my script....