Automate scp file transfer using a shell script Automate scp file transfer using a shell script shell shell

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


why don't you try this?

password="your password"username="username"Ip="<IP>"sshpass -p "$password" scp /<PATH>/final.txt $username@$Ip:/root/<PATH>