Thanks for the reply, Chris. Unfortunately, the script still doesn't
print anything. The expect interface is to a Cisco router. The vty text
pattern is always in the output file, but nothing prints.
Like I mentioned before, if I take the second sub and make another script
out of it, everything works ok.
The vty connection type always exists when I telnet into the router.
Eventually I will replace it with a PPP connection type and grep the name
of the host connected.
The result of the string I want looks like this (if searching for vty):
vty 0 admin VTY 00:00:00 00:00:00
- Scott
On Tue, 14 Aug 2001, Chris Rogers wrote:
>Looking at the second sub in your script (list_active), I am wondering what
>you are trying to print. The script works as written (doesn't produce any
>errors), but the statement:
>
>print if $lines =~ /vty/;
>
>doesn't print anything. Try this:
>
>print $lines if $lines =~ /vty/;
>
>Hope this helps.
>
>Chris Rogers
>
>
>
>-----Original Message-----
>From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
>Sent: Tuesday, August 14, 2001 2:43 PM
>To: [EMAIL PROTECTED]
>Subject: Very simple newbie problem
>
>
>Thank goodness for this kind of list.
>
>I'm very new and am experiencing some mass confusion of how things are
>done. I'm trying to write a simple script to interface with a router
>using Expect. This part works great, in the fact that it can log into the
>router and log to a file.
>
>The second part of the script looks in the file and searches for a
>particular connection type and prints the line. If I separate the two
>functions into separate scripts things work well. Combining them into the
>same script is driving me nuts. Here's the example:
>
>#!/usr/bin/perl -w
>#
># This script is a test script to show what sites have active PPP sessions
>#use CGI;
>use Expect;
>use IO::Handle;
>use strict;
>
>my $count = 0;
>my $logfile = "active-connections.txt";
>my $command;
>my $lines;
>
>check_active();
>list_active();
>
>sub check_active {
>system("rm -f $logfile");
>$command = Expect->spawn("telnet ip.add.re.ssB") or die "Can not open
>telnet session to router: $!";
>
> $command->log_stdout(0);
> $command->log_file("active-connections.txt");
>
> print $command "admin\n";
> print $command "password\n";
> print $command "sho caller\n";
> print $command "exit\n";
>
>$command->soft_close();
>#$command->hard_close();
>}
>
>sub list_active {
> open (MYFILE, "<active-connections.txt") || die "can not open
>file: $!";
> while ($lines = <MYFILE>) {
> print if $lines =~ /vty/;
> }
>}
>
>What's so difficult about this?
>
>- Scott
>
>
>--
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>--
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]