in reply to Re: Redirect expect screen output to file
in thread Redirect expect screen output to file
Working Code
#!/usr/bin/perl use strict; use warnings; use Getopt::Long qw(GetOptions); use Expect; use Net::OpenSSH; use Log::Log4perl qw(:easy); #Initializing the log file.. my $log_file = "/tmp/linux_cmd_execute_".$id.".log"; Log::Log4perl->easy_init( { level => $INFO, file => "> $log_file", } ); INFO( "expect usage user - $user host - $host , fuser - $fuser , cmd - $cmd "); my $start_time = time(); INFO("ssh to the host $host"); my $ssh = Net::OpenSSH->new("$user:$pswd\@$host"); if($ssh->error) { print "Unable to connect $host " . $ssh->error; exit; } my $expect; my ( $pty, $pid ) = $ssh->open2pty( { stderr_to_stdout => 1 }, "su +do su - $fuser" ) or die "Failed to attempt sudo su - $fuser"; $expect = Expect->init($pty); $expect->exp_internal(1); $expect->log_file("/tmp/expect.log", "w"); my $before; my $exit1; my $output; my $result = $expect->expect( undef, [ "\[\r\n]?\[^\r\n]+\[%#>\$] \$", sub { my $self = shift; INFO("Sending command $cmd"); $self->send("ls \r"); } ] ) or custom_error( "Expect Failed ",$id); $expect->hard_close(); exit 0;
-----this output i need in a file------ Starting EXPECT pattern matching... at /usr/local/share/perl5/Expect.pm line 597 Expect::expect('Expect=GLOB(0x2b70d80)', undef, 'ARRAY(0x2b712 +18)') called at /products/backend/mopgenie/expect3.pl line 86 handle id(9): list of patterns: #1: -re `[\r\n]?[^\r\n]+[%#>$] $' handle id(9): Does `' match: pattern #1: -re `[\r\n]?[^\r\n]+[%#>$] $'? No. handle id(9): Does `\033]0;user@host:~\007\033[?1034h[user@host ~]$ ' match: pattern #1: -re `[\r\n]?[^\r\n]+[%#>$] $'? YES!! Before match string: `' Match string: `\033]0;user@host:~\007\033[?1034h[user@host ~]$ ' After match string: `' Matchlist: () Calling hook CODE(0x2b70cd8)... Sending 'ls1;date \r' to handle id(9) at /usr/local/share/perl5/Expect.pm line 1421 Expect::print('Expect=GLOB(0x2b70d80)', 'ls1;date \x{d}') call +ed at /products/backend/mopgenie/expect3.pl line 84 main::__ANON__('Expect=GLOB(0x2b70d80)') called at /usr/local/ +share/perl5/Expect.pm line 825 Expect::_multi_expect(undef, undef, 'ARRAY(0x1f52480)') called + at /usr/local/share/perl5/Expect.pm line 602 Expect::expect('Expect=GLOB(0x2b70d80)', undef, 'ARRAY(0x2b712 +18)') called at /products/backend/mopgenie/expect3.pl line 86 Starting EXPECT pattern matching... at /usr/local/share/perl5/Expect.pm line 597 Expect::expect('Expect=GLOB(0x2b70d80)', undef, 'ARRAY(0x2b72a +40)') called at /products/backend/mopgenie/expect3.pl line 122 handle id(9): list of patterns: #1: -re `[\r\n]?[^\r\n]+[%#>$] $'
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Redirect expect screen output to file
by u65 (Chaplain) on Oct 09, 2015 at 12:11 UTC | |
|
Re^3: Redirect expect screen output to file
by u65 (Chaplain) on Oct 09, 2015 at 14:27 UTC | |
by ryalagikar (Novice) on Oct 12, 2015 at 05:59 UTC | |
by u65 (Chaplain) on Oct 12, 2015 at 12:27 UTC | |
by ryalagikar (Novice) on Mar 02, 2016 at 11:49 UTC |