Expect: Beginner help with spawn and expect


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Expect: Beginner help with spawn and expect
# 1  
Old 05-21-2009
Expect: Beginner help with spawn and expect

Hello hello, did a quick search and didn't turn up anything helpful. I've got a book I'm sure has the answers, but I don't think I'll have time to finish it before this all has to work, so here goes~ if this isn't a good place to post and someone could direct me to another forum I'd appreciate that just as much as an answer, wasn't really sure where to go...

Code:
  1 #!/usr/bin/expect
  2 # To automate the sillyness of the crap IBM keeps sending me.
  3 # Usage: ./san_support.sh <IP to rlogin> <Filename to tee>
  4 #
  5
  6 if [catch {spawn rlogin [lindex $argv 0] | tee [lindex $argv 1]} reason]\
  7 {
  8   puts "Failure to spawn.\r"
  9   puts "Reason: ${reason}\r"
 10 }
 11
 12 expect "shell:"
 13 send "<password>\r"
 14 expect "->"
 15 send "chall\r"

There's quite a few things wrong here, and I've purposefully included a few that I had removed trying to test specific elements. Questions are:

1) How do I spawn rlogin with the tee command? When I try to execute it as such it doesn't work, if I remove the | tee ... portion it will, and adding spawn in twice didn't seem to work.

2) The prompt I'm working with on the IBM SAN controller is '->' - if I expect "->" it errors out, I tried \\-> and \\-\\> but didn't seem to have any luck, I imagine this one is just me being really stupid somewhere.

Edit: Fixed number 2 - I had backwards slashes. Number one still stands though :x

Anyway, I hope that the above is clear, I'd appreciate any criticisms or suggestions as I am very very new to expect. Thanks in advance.

Edit: In my actual script I have the password where <password> is here and that part works, in case there is any unclarity with regards to that bit.
--
~Vryali

Last edited by Vryali; 05-21-2009 at 02:09 PM.. Reason: Resolved the 2nd question, still not sure on the first.
# 2  
Old 05-21-2009
The expect should look something like expect "\-\>" so the shell does try to interpret those characters.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Expect: spawn id exp5 not open while executing "expect "$" { send "sudo su -\r" }"

Hi All, i am trying to ssh to a remote machine and execute certain command to remote machine through script. i am able to ssh but after its getting hung at the promt and after pressing ctrl +d i am gettin the out put as expect: spawn id exp5 not open while executing "expect "$" {... (3 Replies)
Discussion started by: Siddharth shivh
3 Replies

2. Shell Programming and Scripting

Expect script error : send: spawn id exp4 not open

Hi, I am executing a expect script in while loop for doing telnet on list of servers stored in file as below : expect script : #!/usr/bin/expect -f set timeout 20 set ip set port if { == 0} { send_user "Usage: scriptname ip port\n" exit 1 } #exp_internal 1 log_user 0 spawn... (3 Replies)
Discussion started by: omkar.jadhav
3 Replies

3. Shell Programming and Scripting

Error in spawn and expect for password

Code Broken!! "cod generator ip=$loja" expect -c " # set timeout -1 set timeout 18 spawn scp -C /etc/samba/arkivo.sh root@$loja:/etc/samba/ expect { -re "*yes/no*"{ send "yes\r" exp_continue } -re "*password:*" { send "senha\r" expect \"*#*\"}} ssh root@$loja expect \"*password:*\"... (4 Replies)
Discussion started by: hrenechen
4 Replies

4. Shell Programming and Scripting

Using spawn and expect getting error

#!/bin/sh # # set -x stty -echo; read -p "Input password:" A; stty echo; echo; for HOST in `cat elc.hosts.list` do # echo "Connecting to $HOST" expect -c "set timeout -1;\ spawn sshr $HOST -l root \"mkdir /perfstat;\";\ match_max 100000;\ expect *'/root/.ssh/id_dsa':*;\ send --... (1 Reply)
Discussion started by: madlot
1 Replies

5. Shell Programming and Scripting

Using expect command, spawn will not start sftp process

Hi all, I have a script that runs sftp with expect so I can login and send a file in a cronjob. I've installed this on a couple other servers and it has been fine. However, this time on this machine, it seems to be giving me an issue. It won't move past the spawn sftp command and return a... (3 Replies)
Discussion started by: ltyrrell
3 Replies

6. Shell Programming and Scripting

help a beginner, expect script, command not found

hi, i have a problem with my expect script, here is MyScript: #!/usr/bin/expect set pass set c set command spawn sudo $command expect "assword" send "$pass\r" expect eof My problem is that when i execute MyScript with the command : "./MyScript mypassword apt-get_install_git"i get... (6 Replies)
Discussion started by: gongotar
6 Replies

7. Shell Programming and Scripting

Can 'spawn' command be used more than once in an expect script ?

Can 'spawn' script be used more than once in a given expect script ?? What I'm trying to do is, first log-into a remote server through one 'ssh' spawn com and then from there log-into another server using a secod 'ssh' spawn command. But this approach is not working... the second ssh attempt... (1 Reply)
Discussion started by: clakkad
1 Replies

8. Shell Programming and Scripting

Expect Script Error invalid spawn id (6)

Hi everybody, We are trying to connect to a server and to a router using an .expect script that automatically authenticate the username and password needed. The error is that we cannot connect to the server using ssh AND we cannot connect to the router using either telnet or go commands from the... (1 Reply)
Discussion started by: omoyne
1 Replies

9. Shell Programming and Scripting

Need help with Expect script for Cisco IPS Sensors, Expect sleep and quoting

This Expect script provides expect with a list of IP addresses to Cisco IPS sensors and commands to configure Cisco IPS sensors. The user, password, IP addresses, prompt regex, etc. have been anonymized. In general this script will log into the sensors and send commands successfully but there are... (1 Reply)
Discussion started by: genewolfe
1 Replies

10. Shell Programming and Scripting

Expect: How to read buffer for spawn

Hi All, I have to write one expect script to login to one system. I am using set timeout -1 match_max 100000 spawn ssh root@hostname Now when I do spawn ssh to that host it send some warning message and one challenge Challenge: 111-2345 I need to read this challenge value and has... (1 Reply)
Discussion started by: Lokesh Agrawal
1 Replies
Login or Register to Ask a Question