Shell Script: SFTP a File
Sometimes instead of executing a built in command on a remote system you need to upload a script that you will need to execute. Again a simple expect script comes to our rescue to upload a file to a remote system.
#!/usr/bin/expect -f set user [lindex $argv 0] set host [lindex $argv 1] set password [lindex $argv 2] set file [lindex $argv 3] spawn sftp $user@$host expect "password:*" send -- "$password\r" expect "sftp>" send -- "put $file\r" expect "sftp>" send -- "exit\r" interact
Usage: sftp_file <username> <hostname> <password> <file to upload>