Re: Telnet Problem
- From: Olivier Mougin <olviermougin@xxxxxxx>
- Date: Thu, 14 Dec 2006 09:37:07 +0100
abdur_rab7@xxxxxxxxxxx a écrit :
Hi All,Hello,
I am a new bee to perl, do not know even the basics of perl.
The Scenirion, why i choose perl
I have a exe file compiled with cygwin, need to execute in different
windows machine and get the output as log files, so i chose perl to ftp
the required exe file and execute using the Telnet module. I am having
problem with Telnet as it is not returning after the completion of the
exe, it waits until the time out.
I did not use Telnet, but i have a litttle experience in FTP.
To be able to log FTP action in the script, I have redirected STDERR, and STDOUT in the same file. You can try this ..
open ( STDERR ,">>$LOG");
open (STDOUT ,">>$LOG");
select STDERR ;
.....
close (STDERR);
close (STDOUT);
Please find the following perl code.
#!/usr/bin/perl -w
use Net::Telnet;
use strict;
my $LOG_FILE="C:\\Temp\\Telnet.log";
my $SOURCE_PATH="C:\\\\SMIProviderInstallation\\\\src";
my $BUFFER_MAX=10485760; #10 MB of Buffer
if (($#ARGV+1)==5)
{
#my $tel_obj = new Net::Telnet (Timeout => 999, errmode => 'die',
Binmode =>0);
my $tel_obj = new Net::Telnet (errmode => 'return', Binmode =>0);
$tel_obj->max_buffer_length($BUFFER_MAX);
$tel_obj->input_log($LOG_FILE);
if(!($tel_obj->open($ARGV[1])))
{
print "Unable to telnet...\n";
return 0;
}
print "\nINFORMATION: Connecting to Host : $ARGV[1]";
$tel_obj->login(Name => $ARGV[2], Password => $ARGV[3]);
#$tel_obj->login($ARGV[2], $ARGV[3]);
$tel_obj->cmd(String => "cd $SOURCE_PATH");
$tel_obj->timeout(999);
print "\nINFORMATION: Executing the exe : $ARGV[4]";
my $cmd_str = "perl $ARGV[4]";
$tel_obj->cmd($cmd_str);
$tel_obj->timeout(0);
$tel_obj->close;
print "\nINFORMATION: Closing the connection with Host : $ARGV[1]";
}
else
{
print "\nERROR: Invalid Argument Passed...\n";
}
It will get four parameters
$ARGV[0] = passing a string - variable currently not used
$ARGV[1] = Host name
$ARGV[2] = User name
$ARGV[3] = Password
$ARGV[4] = script name
the script which needs to be executed contains the following lines
#!/usr/bin/perl -w
system ("execute.exe");
print "\n$?"
Thanks in advance....
- References:
- Telnet Problem
- From: abdur_rab7
- Telnet Problem
- Prev by Date: Re: FindBin question
- Next by Date: Re: FindBin question
- Previous by thread: Telnet Problem
- Next by thread: Accomodate for poor db design using Sort::Maker?
- Index(es):
Relevant Pages
|
|