Search code examples
unixexpectrcp

Password-less File transfer using RCP and Expect


I have a requirement to transfer files from one server to another. I used RCP command to perform the same and it was working fine. Please find code below:

rcp tst.txt usrname@hostname:/home/username/destination_folder

I tried to automate the same using Expect command so created the below mentioned shell script:

#!/bin/bash
/usr/bin/expect -d<<EOD
spawn rcp tst.txt usrname@hostname:/home/username/destination_folder
expect "*userid@hostname's password:*"
send "mypassword\n"
EOD

I didn't get any error while I executing the shell script but the file was not transferred. Can someone help me figuring out what the issue is?

I have tried password less transfer through key generation but with no luck so I am trying the RCP approach.

Thanks in Advance, Vijay


Solution

  • After sending the password, wait for the completion of rcp, by expecting for eof.

    send "mypassword\r"
    expect eof
    

    If password-less, then, after spawning rcp, expect for eof.