Mark, It may be easier to go by route of the Net::SSH::Perl module or Net::SSH module
#!/usr/bin/perl
use strict;
use warnings;
my $user = "bob";
my @hosts = "host1, host2, host3, host3";
foreach my $host (@hosts) :
my $cmd = "/usr/bin/uptime";
my $ssh = Net::SSH::Perl->new( $host, port => 22 );
$ssh->login($user);
my ( $out, $error, $exit ) = $ssh->cmd( $cmd );
my ( $time, $uptime ) = ( split /\|/, $out[0] )[1,1];
print "$host has been up $uptime\n";
}
##################
or something along that lines. The cmd output spits to $out. You can
do with it what ever you like... I think that should all work..
chad
On Sat, 2002-12-07 at 12:11, Mark Weisman wrote:
> I've got a script that I'm working on that will use SSH to check the
> uptime on servers within my domain. However, I'm unsure of how exactly
> to do this this is what I have so far.
>
> ##!/usr/bin/perl
>
> #My (@machines,$host,$user,$pass)
>
> #Open(INFILE,"<machines.txt")
> # or die "Error opening machines.txt.$!,stopped"
> #@machines = <INFILE>;
> #Close(INFILE);
> #Foreach my $rec (@machines) {
> # chomp($rec);
> # ($host,$user,$pass) = split(/,/, $rec);
> # open (OUTFILE, ">records.txt")
> # or die "Error opening records.txt.$!,stopped";
> # close(OUTFILE);
> # open (OUTFILE, ">>records.txt")
> # or die "Error opening records.txt.$!,stopped";
> # print OUTFILE 'ssh -l $user $host "uptime"';
> # close(OUTFILE);
> #};
> Without the hash marks of course. Where am I going wrong? Help please?
>
> His Faithful Servant,
> Mark-Nathaniel Weisman
> President / CEO
> Infinite Visions Educational Systems Inc.
> Anchorage, Alaska
> http://www.ivedsys.com
> [EMAIL PROTECTED]
>
>
> --
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
signature.asc
Description: This is a digitally signed message part
