Help with Expect

Phusion phusion2k at gmail.com
Mon May 23 07:33:22 PDT 2005


Mike,

I need to this be in an expect script because I will be entering
commands after I telnet into the machine. Thanks for the help though.

On 5/22/05, Mike Jeays <Mike.Jeays at rogers.com> wrote:
> On Sun, 2005-05-22 at 20:30, Phusion wrote:
> > I need some help with an expect script I'm trying to write. Here's
> > what I would like to do.
> >
> > - Ping the host to see if it's up.
> >   a. If the host responds to pings telnet into it.
> >   b. If the host doesn't respond to pings write that to a log file and
> > close the expect script properly.
> >
> > The host does respond to pings. I was thinking if I see a ttl in the
> > response packet to assume it's up and telnet into it. Let me know how
> > I can do the following with expect. Also, how do I close an expect
> > script properly? Thanks.
> > _______________________________________________
> > freebsd-questions at freebsd.org mailing list
> > http://lists.freebsd.org/mailman/listinfo/freebsd-questions
> > To unsubscribe, send any mail to "freebsd-questions-unsubscribe at freebsd.org"
> >
> I sent you these examples to a similar request a few days ago, and
> didn't get any acknowledgement.  Did you not receive it, or is it not
> clear, or do you need more help?
> 
> -----------------------------------------------------
> 
> You can ping a host and test whether it was successful from a shell
> script, without needing to use expect.  Hope this is useful, as it
> doesn't quite answer your question.  Note the "-c 1" to tell ping to try
> just once.
> 
> ping -c 1 chaucer
> rc1=$?
> if [ $rc1 -gt 0 ]
> then
>   echo "Chaucer is down"
> else
>   echo "Chaucer is up"
> fi
> 
> Here is an example of telnet from expect; a very quick and dirty way to
> synchronize a clock on a very old machine.
> 
> #!/usr/local/bin/expect
> set timeout 10
> spawn telnet jansen
> expect "]"
> 
> send "password1\r"
> expect "jansen???"
> 
> send "su\r"
> expect "Password:"
> 
> send "rootpassword\r"
> expect "#"
> 
> exec date >/tmp/datesync.tmp
> exec cat /tmp/datesync.tmp
> set newtime [exec cat /tmp/datesync.tmp]
> send "date -s \"$newtime\"\r"
> expect "#"
> 
> send "exit\r"
> expect "jansen???"
> 
> send "exit\r"
> expect "host."
> 
> 
>


More information about the freebsd-questions mailing list