![]() |
Hello and Welcome from United States to the UNIX and Linux Forums! Thank You for Visiting and Joining Our Global Community.
|
|
google unix.com
|
|||||||
| Forums | Register | Forum Rules | Links | Albums | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| Shell Programming and Scripting Post questions about KSH, CSH, SH, BASH, PERL, PHP, SED, AWK and OTHER shell scripts and shell scripting languages here. |
More UNIX and Linux Forum Topics You Might Find Helpful
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| shell script performance issues --Urgent | icefish | Shell Programming and Scripting | 18 | 12-14-2007 10:43 AM |
| UNIX script issues - Plse help guru's | budrito | Shell Programming and Scripting | 2 | 02-14-2006 12:50 AM |
| Issues using ssh from crontab to run remote script from | frustrated1 | Shell Programming and Scripting | 4 | 08-25-2005 03:49 AM |
| telnet issues | yls177 | UNIX for Dummies Questions & Answers | 8 | 09-30-2002 09:52 PM |
| telnet in a script | vaccari | UNIX for Dummies Questions & Answers | 10 | 10-10-2001 11:37 AM |
![]() |
|
|
LinkBack | Thread Tools | Search this Thread | Rate Thread | Display Modes |
|
||||
|
Telnet Script Issues
HI All
Some body wrote to me this Telnet Script : Code:
#!/opt/perl/bin/perl
$ip = $ARGV[0];
die ("IP must be passed as an argument. $!\n") unless defined($ip);
use Net::Telnet ();
$handle = new Net::Telnet (Timeout => 10, Prompt => '/.*(#|>|\))\s*$/');
$handle->open("$ip");
$handle->login("MY_USER","PASSOWRD");
$handle->cmd("terminal length 0");
@lines = $handle->cmd("show cdp neighbor");
print "@lines";
#system("sleep 30");
$handle->cmd(exit);
$handle->close;
My Issues in this Script are : 1 – I understand all the lines Except this one “ Prompt => '/.*(#|>|\))\s*$/' “ I know its function is define the Prompt for cisco router but I need any one explain it for me I mean the syntax . 2 – I downloaded the telnet module from CPAN.org and tried to install it, it gives me an error like this : Code:
CORE" perlmain.c (Bundled) cc: warning 480: The -A option is available only with the C/ANSI C pro duct; ignored. (Bundled) cc: warning 480: The +Z option is available only with the C/ANSI C pro duct; ignored. (Bundled) cc: warning 422: Unknown option "f" ignored. (Bundled) cc: warning 480: The +Onolimit option is available only with the C/ANS I C product; ignored. (Bundled) cc: warning 480: The +Opromote_indirect_calls option is available only with the C/ANSI C product; ignored. cpp: "/opt/perl_32/lib/5.8.8/PA-RISC1.1-thread-multi/CORE/perlio.h", line 121: e rror 4065: Recursion in macro "PerlIO". *** Error exit code 1 Stop. *** Error exit code 1 Code:
Can't locate Net/Telnet.pm in @INC (@INC contains: /opt/perl_32/lib/5.8.8/PA-RIS C1.1-thread-multi /opt/perl_32/lib/5.8.8 /opt/perl_32/lib/site_perl/5.8.8/PA-RIS C1.1-thread-multi /opt/perl_32/lib/site_perl/5.8.8 /opt/perl_32/lib/site_perl /o pt/perl_32/lib/vendor_perl/5.8.8/PA-RISC1.1-thread-multi /opt/perl_32/lib/vendor _perl/5.8.8 /opt/perl_32/lib/vendor_perl .) at ./t1 line 4. BEGIN failed--compilation aborted at ./t1 line 4. Code:
This is perl, v5.8.8 built for PA-RISC1.1-thread-multi Thanks a lot for your help ![]() |
|
||||
|
The prompt regular expression means any character (.) zero or more times (*) followed by either # or > or ), followed by whitespace (\s), zero or more occurrences (*), followed by end of line ($). Read up on regular expressions; it's time well invested.
Installing the module obviously failed. Looks like you need to find a C compiler which is a "C/ANSI C product" for your platform. It might be as simple as rearranging your PATH to make /opt/path/to/secret/ansi/cc come before /usr/bin/sucky/old/legacy/we/hate/our/customers/cc but really, google for a bit and read the documentation for your platform's compiler alternatives. |
|
||||
|
... or see if you can find GCC for your platform.
Quick googling turned up similar problems in other Perl modules; Mysql-DBD Perl module Installation Problem in HPUX looks vaguely helpful for solving the problem, and https://sourceforge.net/tracker/?fun...group_id=10127 suggests that this is a bug in the C compiler for HP-UX. As such, the configure script ought to know about these issues, and not produce an incorrect Makefile for your platform. Maybe you could submit a bug report about this, although I can't tell exactly whose bug that is. Last edited by era; 04-06-2008 at 05:17 AM.. Reason: Maybe submit a bug report |
|
||||
|
continue perl telnet
I need to telnet to a sun servervia 9023 port.
Normally, I can telnet directly as below: telnet 10.2.4.9 9023 Trying 10.2.4.9... Connected to 10.2.4.9. Escape character is '^]'. 900 Login required. login username passwd login username passwd 102 2 records. Lucent NavisRadius Radius Server, Version 4.5.8 (Build 551-060) Copyright (c) 1998-2005 Lucent Technologies Inc. All Rights Reserved. ==> I tried to use Net::Telnet with the code following: #!/usr/bin/perl -w use Net::Telnet (); $t = new Net::Telnet (Timeout => 10,Port => 9023,Prompt => '/==> $/'); $t->open("10.2.4.9"); $t->waitfor("900 Login required. $/i"); $t->print("login username passwd"); But it's not successful. This is the error message: missing opening delimiter of match operator in argument "900 Login required.i" given to Net::Telnet::waitfor() at ./try line 5 How can i fix it ? |
|
||||
|
It doesn't like the slash because it's (stupidly, buggily) using that internally as a regex separator, apparently. Try backslash-escaping it. Or, if it's meant as a regex separator, put in the missing opening separator.
|
| Sponsored Links | ||
|
|
![]() |
| Bookmarks |
| Tags |
| regex, regular expressions |
| Thread Tools | Search this Thread |
| Display Modes | Rate This Thread |
|
|