save commands and output into log/ip-hostname.log
authorDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 17 Sep 2015 14:11:41 +0000 (16:11 +0200)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Thu, 17 Sep 2015 14:13:22 +0000 (16:13 +0200)
dell-switch.pl

index 081a197..f23546a 100755 (executable)
@@ -19,11 +19,10 @@ my $ip = shift @ARGV || '10.20.0.2';
 my @commands = @ARGV;
 @commands = <DATA> unless @commands;
 
+warn "## $ip\n";
 my $ssh = Net::OpenSSH->new('auto@'.$ip);
 my ($pty ,$pid) = $ssh->open2pty();
 
-open my $log, '>', '/tmp/dell.log';
-
 my $buff;
 
 while(1) {
@@ -37,8 +36,11 @@ while(1) {
        } elsif ( $buff =~ m/Password:/ ) {
                print $pty "$passwd\n";
                $buff = '';
-       } elsif ( $buff =~ m/#$/ ) {
+       } elsif ( $buff =~ m/([\w\-]+)#$/ ) {
+               my $hostname = $1;
                if ( $buff ) {
+                       mkdir 'log' unless -d 'log';
+                       open my $log, '>>', "log/$ip-$hostname.log";
                        print $log $buff;
                        $buff = '';
                }