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


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Expect: spawn id exp5 not open while executing "expect "$" { send "sudo su -\r" }"
# 1  
Old 05-29-2018
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

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

can any one help me with this.

here is my code.

Code:
#!/usr/bin/expect -f
set host [lindex $argv 0]
#set user [lindex $argv 1]
spawn scp -r /home/uname/dhclient/  upupmadm@$host:/home/uname/
sleep 5
expect "*password: " { send "******\r"; exp_continue }
#expect "$"
spawn ssh uname@$host
sleep 5
#expect "yes/no"
#send "yes\r"
expect "*password: " { send "******\r"; exp_continue }
interact
expect "$" { send "sudo su -\r" }
expect "#" { send "cd /home/uname/dhclient/\r" }
expect "#" { send "./upgrade.sh" }
expect "#"
send "exit\r"
 send "exit\r"

Moderator's Comments:
Mod Comment Please use CODE tags as required by forum rules!
And:
Make sure to post in an adequate forum!

Last edited by RudiC; 05-29-2018 at 06:07 AM.. Reason: Added CODE tags; moved from "Post Here to Contact Site Administrators and Moderators"
# 2  
Old 05-29-2018
Embedding plaintext passwords in scripts is incredibly insecure. You could try modifying sudoers instead of making everything so hard on yourself.
# 3  
Old 05-29-2018
yes but my question is i am not able to execute the commands further after login to remote server.
# 4  
Old 05-31-2018
I would recommend removing expect from your process entirely.

Put simply,
  • You can set up can set up sudo rules so that a password is not needed.
  • You can set up SSH keys so that a password is not needed for ssh, scp and similar.
You should be able to then simply do something like these:-
Code:
scp -r /home/uname/dhclient/  upupmadm@$host:/home/uname/
sudo ssh uname@host "cd /home/uname/dhclient ; ./upgrade.sh"

Does that help?

We can test the two parts by:-
Code:
ssh uname@$host hostname
sudo ssh uname@$host hostname

If set up correctly, neither should prompt for a password. The output should be something obvious.


How far do you get? If you get prompted, can you show us the attempt and the output (wrapped in CODE tags, of course)



Thanks, in advance,
Robin
This User Gave Thanks to rbatte1 For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. AIX

Apache 2.4 directory cannot display "Last modified" "Size" "Description"

Hi 2 all, i have had AIX 7.2 :/# /usr/IBMAHS/bin/apachectl -v Server version: Apache/2.4.12 (Unix) Server built: May 25 2015 04:58:27 :/#:/# /usr/IBMAHS/bin/apachectl -M Loaded Modules: core_module (static) so_module (static) http_module (static) mpm_worker_module (static) ... (3 Replies)
Discussion started by: penchev
3 Replies

2. Shell Programming and Scripting

Bash script - Print an ascii file using specific font "Latin Modern Mono 12" "regular" "9"

Hello. System : opensuse leap 42.3 I have a bash script that build a text file. I would like the last command doing : print_cmd -o page-left=43 -o page-right=22 -o page-top=28 -o page-bottom=43 -o font=LatinModernMono12:regular:9 some_file.txt where : print_cmd ::= some printing... (1 Reply)
Discussion started by: jcdole
1 Replies

3. UNIX for Dummies Questions & Answers

Using "mailx" command to read "to" and "cc" email addreses from input file

How to use "mailx" command to do e-mail reading the input file containing email address, where column 1 has name and column 2 containing “To” e-mail address and column 3 contains “cc” e-mail address to include with same email. Sample input file, email.txt Below is an sample code where... (2 Replies)
Discussion started by: asjaiswal
2 Replies

4. Solaris

The slices "usr", "opt", "tmp" disappeared!!! Help please.

The system don't boot. on the screen appears following: press enter to maintenance (or type CTRL-D to continue)...I checked with format command. ... the slices "0-root","1-swap","2-backup" exist. ...the slises "3-var","6-usr" -unassigned. :( (16 Replies)
Discussion started by: wolfgang
16 Replies

5. Shell Programming and Scripting

how to use "cut" or "awk" or "sed" to remove a string

logs: "/home/abc/public_html/index.php" "/home/abc/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" "/home/xyz/public_html/index.php" how to use "cut" or "awk" or "sed" to get the following result: abc abc xyz xyz xyz (8 Replies)
Discussion started by: timmywong
8 Replies

6. Shell Programming and Scripting

awk command to replace ";" with "|" and ""|" at diferent places in line of file

Hi, I have line in input file as below: 3G_CENTRAL;INDONESIA_(M)_TELKOMSEL;SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL My expected output for line in the file must be : "1-Radon1-cMOC_deg"|"LDIndex"|"3G_CENTRAL|INDONESIA_(M)_TELKOMSEL"|LAST|"SPECIAL_WORLD_GRP_7_FA_2_TELKOMSEL" Can someone... (7 Replies)
Discussion started by: shis100
7 Replies

7. Shell Programming and Scripting

ps -ef | grep "string1" "string2" " "string3"

Hi all, can any one suggest me the script to grep multiple strings from ps -ef pls correct the below script . its not working/ i want to print OK if all the below process are running in my solaris system. else i want to print NOT OK. bash-3.00$ ps -ef | grep blu lscpusr 48 42 ... (11 Replies)
Discussion started by: steve2216
11 Replies

8. Shell Programming and Scripting

cat $como_file | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g'

hi All, cat file_name | awk /^~/'{print $1","$2","$3","$4}' | sed -e 's/~//g' Can this be done by using sed or awk alone (4 Replies)
Discussion started by: harshakusam
4 Replies

9. UNIX for Dummies Questions & Answers

Explain the line "mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'`"

Hi Friends, Can any of you explain me about the below line of code? mn_code=`env|grep "..mn"|awk -F"=" '{print $2}'` Im not able to understand, what exactly it is doing :confused: Any help would be useful for me. Lokesha (4 Replies)
Discussion started by: Lokesha
4 Replies
Login or Register to Ask a Question