hi,
I want to rsync files into a backup server periodically. I use rsync over ssh. I use ssh-keygen to generate public-private keypair (using a passphrase) and copy the public key to the destination machine.
Now when i do ssh, the rsync prompts for the passphrase. To supply it, i use the expect script. I am new to expect. I googled and found the following script.
<code>
#!/usr/bin/expect
set timeout 19900
spawn /bin/bash
expect -re "]# "
send "rsync -avz -e ssh user@host:/etc/passwd /tmp/\r"
expect -re "Enter passphrase"
sleep 2
send "abcdefgh\r"
expect -re "total size is"
send "exit\r"
</code>
The passphrase is "abcdefgh". This works perfectly fine. But my requirement is to get this passphrase from a file instead of hardcoding inside the expect script like the following.
<code>
expect -re "Enter passphrase"
sleep 2
send "`cat /tmp/passphrasefile`\r"
</code>
How can i do this.
Any help is appreciated. TIA.