Visit Our UNIX and Linux User Community

Expect script to run a Shell script on remote server

Thread Tools Search this Thread
Top Forums Programming Expect script to run a Shell script on remote server
# 1  
Old 03-23-2011
Expect script to run a Shell script on remote server

Hi All,

I am using a expect script to run a shell script on remote server, the code is as follows. But the problem is that it executes only first command, and hangs it doesn't run the next commands.
spawn ssh $uid@$host
expect "password:"
send "$password\r"
expect "*\r"
send "$HOME/\r"
expect "*\r"
send "exit\r"
expect eof

The script is exiting after running first line from, it is because of send "exit\r" command.

So instead i want to send ctrl -c to the remote server through "send"

How this can be achieved.

Moderator's Comments:
Mod Comment Please use [code] and [/code] tags when posting code, data or logs etc. to preserve formatting and enhance readability, thanks.

Last edited by zaxxon; 03-23-2011 at 08:58 AM.. Reason: code tags
# 2  
Old 03-23-2011
ssh, scp, sftp, sudo, su, and pretty much any sane login system are all specifically designed to prevent you from using stored, plaintext passwords. That you bludgeon it into working with a third-party hacking tool is a subtle hint, writ in mile-high flashing neon letters, that you're really not supposed to do this. Unfortunately this isn't just an aesthetic consideration -- they've got good reason to consider retrievably-stored passwords a security nightmare.

If you use ssh keys -- a secure and noninteractive authentication method -- ssh/scp/sftp won't fight you at all. They'll work as designed directly, with no coercion or third-party utilities necessary: Just the right files in the right places lets you type ssh hostname /bin/sh < /path/to/ and watch it go. You'll find tutorials on creating ssh keys plastered all over the internet, and if they give you trouble, we can help. Here's one of them.

Last edited by Corona688; 03-23-2011 at 12:14 PM..
# 3  
Old 03-23-2011
The problem is with the expect line after the send of the shell script. You need to change that to specifically look for the shell prompt before you send the exit command. Your expect script is taking any output sent by the shell script as a valid match so it sends the exit command.

Previous Thread | Next Thread
Test Your Knowledge in Computers #299
Difficulty: Easy
Novell bought the SUSE (then SuSE) brands and trademarks in 2003.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Except script to run a local shell script on remote server using root access

local script: cat > cd /tmp echo $PWD echo `whoami` cd /tmp/123 tar -cvf 789.tar 456 sleep 10 except script: cat > first #!/usr/bin/expect set ip set user "xyz123" set password "123456" set script spawn sh -c "ssh $user@$ip bash < $script" (1 Reply)
Discussion started by: Aditya Avanth
1 Replies

2. Shell Programming and Scripting

How to execute commands on remote server using expect script?

I need to copy python script file to around 100 servers using expect script. 1. Copy script to my user home first(/home/myhome) on each remote server 2. change permissions on copied file to 766. 3. sudo to appuser1 account on remote server. copy script file from my user home to /usr/bin/... (1 Reply)
Discussion started by: kchinnam
1 Replies

3. Shell Programming and Scripting

To run a shell script in remote server from windows batch file

Hi all, i need to run a shell script on remote server. I have created file .bat file in windows server with following code, c:\Users\Desktop\putty.exe -ssh -pw password user@server ./ i need to run the in my remote server Above command is not working, any... (4 Replies)
Discussion started by: rammm
4 Replies

4. UNIX for Advanced & Expert Users

Unable to run the script on remote machine Using Expect script

Not able to execute the file in remote host using except utility I am automating the SFTP keys setp process: So i created the expect script for controlling the output of shell below is my main code: Code: #!/usr/bin/expect set fd set password close $fd set df set app close $df... (1 Reply)
Discussion started by: Manoj Bajpai
1 Replies

5. Shell Programming and Scripting

Need script to run the command in remote server

hi, I need script to perform below task. 1. Read the IP address 2. copy the script from origin server to destination. 3. get root access on destination server 4. run the script on destination server 5. return to the origin server Code: #!/bin/bash echo "Enter Server IP... (5 Replies)
Discussion started by: bapu1981
5 Replies

6. Shell Programming and Scripting

Use expect to run an interactive shell script?

Hi all, I have a bit of a vexing issue here and I'm not certain how best to go about it. Basically, I want to run a shell script and automate the user prompt of hitting 1 to fully uninstall Symantec Anti-Virus for OS X. Would expect be the best way to do this? (5 Replies)
Discussion started by: prometheon123
5 Replies

7. Shell Programming and Scripting

Copy and run that script in Remote server

Hi All, I need script to perform below task. 1. I have a script in one server and need to copy this script to remote server 2. login in to remote server 3. run the script which i copied to this server. #!/bin/bash read a scp /tmp/ user@hostname:/tmp ssh user@$a ./ ... (2 Replies)
Discussion started by: bapu1981
2 Replies

8. Shell Programming and Scripting

Need help on how to exit a script run on a server from a remote server

hi, I am using the below line to run a script from remote server(say server A) to another server(say server B). ssh username@servername ksh script name. The issue is the script logs into server B, executes the script on server B, transfers the file to server A but does not exit from... (4 Replies)
Discussion started by: yohasini
4 Replies

9. Shell Programming and Scripting

how to run shell script inside expect script?

I have the code like this : shell script continues ... .... expect -c" spawn telnet $ip expect "login:" send \"$usrname\r\" expect "Password:" send \"$passwd\r\" expect "*\>" send \"$cmdstr\r\" ... (1 Reply)
Discussion started by: robbiezr
1 Replies

10. Shell Programming and Scripting

run a application from a remote server via script?

I have a ksh script that does a bunch of things, then runs telnet server_b I then manually login, manually run one command (which launches an application with display back to my workstation), then logout at which point the main script takes back over, runs something else, then ends. Is... (4 Replies)
Discussion started by: yankee428
4 Replies

Featured Tech Videos