Re: Expect + telnet problem

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Arthur Meeks Meeks wrote:
Hello,

I'm creating an expect script to:

telnet router
execute command
exit

This seems to be quite easy when you have 1 router, the problem is I have a list of 40 routers, so I thought about creating a expect script but I have gotten some problems.
The first one is...how to include all the machines?
I thought about something like: for d in $(cat router_list); do expect_script $d;done

And if that worked, the script would take $d and do:

telnet $d
execute my command
exit

But I don't know how to accomplish that as the script and the "expect --exact" output are different, one per router, basically because:
expect -exact "telnet router23\r
Trying 192.168.33.12...\r
Connected to router23.test.\r

Changes in all the routers, I have tried to delete that whole paragraph so it only expects "Login", but it doesn't work.

And also...how to include the script in the "for" loop?.

Any idea will be appreciated.

Arthur.





If you are up to a little perl, the expect perl module will do what you want.

However, its not impossible to use shell tricks to do what you want.

Generate a list:

list=`cat my_list`

for name in $list
do
   expect ... $name ...
done

Or you might want to mix that with another script to generate an expect script:

#!/bin/sh

list=`cat my_list`

for name in $list
   do
   cat > /tmp/script << _EOF
here is
my expect
script including $name
_EOF
expect < /tmp/script

done


But in perl, you could do it all at once.

Good luck!

--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux