in reply to Short example using IPC::Open2 or IPC::Open3
#!/usr/bin/perl use FileHandle; use IPC::Open2; my(@machines,$host,$user,$pass); # read your record open(INFILE,"<IPC2-SSH-machines.txt") || die "Error opening machines.t +xt.$!,stopped"; chomp ( @machines = <INFILE> ); close(INFILE); foreach my $rec (@machines) { ($host,$user,$pass) = split(/,/, $rec); print "$host $user $pass\n\n"; open2(*RD_FH, *WR_FH, "ssh $user\@$host uptime") || die "cant fork a c +hild: $!"; while (<RD_FH>){print}; print WR_FH "$pass"; while (<RD_FH>){ if(m/password/){ #if(1){ #print WR_FH "$pass\n"; print "\t\t\tHOST $host responded with\n"; print "__________________________________________________________\n"; }else{ print "error msg from ssh: $_\n"; } } } exit 0;
|
|---|