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/
>