Matt:
I have a couple of questions regarding your code below.

1. I get an error when I include the statement 
    use Term::Readkey

Should I be including anything else before it?  Where is the documentation
for Term::Readkey?

2. What is _stop.sh, and _start.sh referring to?

Thanks very much 
Vrunda


On Sat, 23 Jun 2001, Matt Cauthorn wrote:

> Here's some code that works well for us to bounce some apache instances across a
> cluster(obviously truncated). 
> 
> Notice how you stuff STDOUT from your remote call into an array that you print for
> output locally. This module rocks, and is (for us) blistering fast and super
> flexible. Also, I used Term::Readkey to prompt for (noecho) passwords so you don't
> have them sitting there in your code. 
> 
> foreach my $server (@cluster) {
>         # Initialze the arrays to make sure they're not holding prev. values...
>         my (@stop,@start);
> 
>         my $s=Net::Telnet->new(Host=>$server,Input_log=>'telnet.txt') || die
> "Problem: $!\n";
>          
>          my $stop=qq(\./$server\_stop.sh);
>          my $start=qq(\./$server\_start.sh);
>         ## Connection to telnet service on remote host
>         $s->login(Name=> $user,
>                 Password=>$pass,
>                 Prompt=>'/root\@.*/',
>                 Timeout=>8) || die $s->errmsg, "\n";
> 
>         @stop=$s->cmd(String=>$stop,Prompt=>'/matt\@.*/') or warn $s->errmsg ,"\n";
>         print "Stopping $server: @stop\n";
>         sleep 2;
>         @start=$s->cmd(String=>$start,Prompt=>'/matt\@.*/') or warn $s->errmsg
> ,"\n";
>         print "Starting $server";
>         sleep 1;
>         print "@start\n";
>     }
> 
> The tricky part for me was to match the prompt after the command executed. I
> consider myself to be decent with regexes (for a relative beginner) but I had to
> fiddle with it for a while to get it happy. 
> 
> Hope this helps,
> Matt
> 
> 
> --------------------------------------------
> --- Tom Yarrish <[EMAIL PROTECTED]> wrote:
> > Hey all,
> > Okay, I'm playing with Net::Telnet, and I've gotten to the point where I
> > connect to the other machine.  What I wanted to know is, can I run and
> > interact with a program just using the cmd() part of that module?  Or do I
> > need to use another module to do that.  Basically what I'm going is
> > telnetting to a server, then running a program (perl scripts actually),
> > then feeding it some options, and then exiting out of the program.  Sort
> > of like this (snipped)
> > 
> > $session->cmd("/home/export/user/Xmenu.pl");
> > $session->cmd("2"); # This is fed to the Xmenu.pl program
> > $session->cmd("1"); # and this
> > $session->cmd("y"); # and this
> > 
> > Thanks,
> > Tom
> > 
> > -- 
> > #!/usr/bin/perl -w # 526-byte qrpff, Keith Winstein and Marc Horowitz
> > <[EMAIL PROTECTED]> # MPEG 2 PS VOB file on stdin -> descrambled output
> > on stdout # arguments: title key bytes in least to most-significant order
> > $_='while(read+STDIN,$_,2048){$a=29;$c=142;if((@a=unx"C*",$_)[20]&48){$h=5;
> > $_=unxb24,join"",@b=map{xB8,unxb8,chr($_^$a[--$h+84])}@ARGV;s/...$/1$&/;$d=
> > unxV,xb25,$_;$b=73;$e=256|(ord$b[4])<<9|ord$b[3];$d=$d>>8^($f=($t=255)&($d
> > >>12^$d>>4^$d^$d/8))<<17,$e=$e>>8^($t&($g=($q=$e>>14&7^$e)^$q*8^$q<<6))<<9
> > ,$_=(map{$_%16or$t^=$c^=($m=(11,10,116,100,11,122,20,100)[$_/16%8])&110;$t
> > ^=(72,@z=(64,72,$a^=12*($_%16-2?0:$m&17)),$b^=$_%64?12:0,@z)[$_%8]}(16..271))
> > [$_]^(($h>>=8)+=$f+(~$g&$t))for@a[128..$#a]}print+x"C*",@a}';s/x/pack+/g;eval
> > 
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Get personalized email addresses from Yahoo! Mail
> http://personal.mail.yahoo.com/
> 

Reply via email to