Automate scp file transfer using a shell script
Instead of hardcoding password in a shell script, use SSH keys, its easier and secure.
$ scp -i ~/.ssh/id_rsa *.derp devops@myserver.org:/path/to/target/directory/
assuming your private key is at ~/.ssh/id_rsa
and the files you want to send can be filtered with *.derp
To generate a public / private key pair :
$ ssh-keygen -t rsa
The above will generate 2 files, ~/.ssh/id_rsa
(private key) and ~/.ssh/id_rsa.pub
(public key)
To setup the SSH keys for usage (one time task) :Copy the contents of ~/.ssh/id_rsa.pub
and paste in a new line of ~devops/.ssh/authorized_keys
in myserver.org
server. If ~devops/.ssh/authorized_keys
doesn't exist, feel free to create it.
A lucid how-to guide is available here.
#!/usr/bin/expect -f# connect via scpspawn scp "user@example.com:/home/santhosh/file.dmp" /u01/dumps/file.dmp#######################expect { -re ".*es.*o.*" { exp_send "yes\r" exp_continue } -re ".*sword.*" { exp_send "PASSWORD\r" }}interact
http://blogs.oracle.com/SanthoshK/entry/automate_linux_scp_command