On 09/09/09 17:09, 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. Try something like this: cat <<EOF >> telnet.exp #!/usr/bin/expectk -f spawn telnet $argv expect "Username:" exp_send "myusername\r" expect "Password:" exp_send "mypassword\r" expect -re "(.*)#" exp_send "sh run\r" sleep 0.1 exp_send " " sleep 0.1 exp_send " " expect -re "(.*)#" exp_send "exit\r" exit EOF for hostname in `cat list-of-routers`;do expect telnet.exp $hostname|tee $hostname.log;done Matt -- fedora-list mailing list fedora-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines