7 use Data::Dump qw(dump);
8 use List::Util qw(first);
16 #$Net::OpenSSH::debug = ~0;
18 my $ip = shift @ARGV || '10.20.0.2';
20 @commands = <DATA> unless @commands;
23 my $ssh = Net::OpenSSH->new('auto@'.$ip);
24 my ($pty ,$pid) = $ssh->open2pty();
30 my $read = sysread($pty, $data, 1);
33 if ( $buff =~ m/User Name:/ ) {
34 print $pty "$login\n";
36 } elsif ( $buff =~ m/Password:/ ) {
37 print $pty "$passwd\n";
39 } elsif ( $buff =~ m/([\w\-]+)#$/ ) {
42 mkdir 'log' unless -d 'log';
43 open my $log, '>>', "log/$ip-$hostname.log";
47 if ( my $command = shift @commands ) {
48 $command .= "\n" unless $command =~ m/\n$/;
50 print $pty "$command";
57 } elsif ( $buff =~ m/% Unrecognized command/ ) {
59 } elsif ( $buff =~ s{More: <space>, Quit: q, One line: <return> }{} ) {
61 } elsif ( $buff =~ s{\e\[0m\r\s+\r}{} ) {
69 show bridge address-table