在Linux上自动执行SFTP / SSH提示

时间:2016-02-29 09:02:20

标签: linux ssh sftp

我对shell脚本和ssh命令等特别陌生。我想知道在将文件从一台服务器上传/下载到另一台服务器时是否可以自动执行简单的sftp提示。

以下是我的工作:

  • 命令:sftp username @ ServerHost
  • 回复:主持人'***'的真实性无法确定。         您确定要继续连接(是/否)吗?
  • 输入'yes'后,它会询问密码

我基本上想要自动执行此操作,因为我将调用一个脚本,该脚本将通过源服务器上的InfoSphere Datastage序列作业将文件从源服务器上载到远程服务器。

PS。请原谅我的傲慢如果这个问题无法理解它是否太少年了:)

1 个答案:

答案 0 :(得分:0)

查看expect,这有助于在脚本中自动执行此类问题。

这是一个适合我的示例:

#!/usr/bin/expect -f

set timeout 30

set user "coder"
set node "repohost"
set fsrc "/home/coder/Sources/sysperf/makefile"
set fdst "/tmp"
set uspw "topSecret"

spawn sftp $user@$node:$fsrc $fdst
expect_after eof {exit 1}
expect "$user@$node's password: " {send "$uspw\r"}
expect "*100%*"