From: Dobrica Pavlinusic Date: Mon, 29 Aug 2016 15:37:45 +0000 (+0200) Subject: send enable only as first command, fix cleanup X-Git-Url: http://git.rot13.org/?p=dell-switch;a=commitdiff_plain;h=7e50b8c4b193ffa02a31a0563e7f8b0265075eee send enable only as first command, fix cleanup --- diff --git a/dell-switch.pl b/dell-switch.pl index 4d7badb..6b4f61c 100755 --- a/dell-switch.pl +++ b/dell-switch.pl @@ -19,7 +19,7 @@ my $ip = shift @ARGV || die "usage: $0 IP command[ command ...]\n"; my @commands = @ARGV; @commands = unless @commands; -warn "## $ip\n"; +warn "\n## ssh $ip\n"; my $ssh = Net::OpenSSH->new($ip, user => $login, passwd => $passwd); my ($pty ,$pid) = $ssh->open2pty(); if ( ! $pty ) { @@ -76,8 +76,6 @@ while(1) { } elsif ( $buff =~ m/Password:/ ) { send_pty "$passwd\n"; $buff = ''; - } elsif ( $buff =~ m/\b([\w\-]+)>$/ ) { - send_pty "enable\n"; } elsif ( $buff =~ m/([\w\-]+)#$/ ) { my $hostname = $1; if ( $buff ) { @@ -95,12 +93,14 @@ while(1) { } } elsif ( $buff =~ m/% Unrecognized command/ ) { exit 1; - } elsif ( $buff =~ s{More: , Quit: q.*One line: }{} ) { - sleep 0.5; + } elsif ( $buff =~ s{More: , Quit: q.*One line: \s*}{} ) { send_pty " "; } elsif ( $buff =~ s{\Q--More-- or (q)uit\E}{} ) { - send_pty " " - } elsif ( $buff =~ s{\e\[0m\r\s+\r}{} ) { + send_pty " "; + } elsif ( $buff =~ s{\e\[0m\s*\r\s+\r}{} ) { + # nop + } elsif ( $buff =~ m/^[\r\n]+[\w\-]+>$/ ) { + send_pty "enable\n"; } }