背景
最近项目需求中提到使用sftp进行文件上传,但是生产服务器是无法直接连接的,需要通过堡垒机连接,概念图如下。

本博文即将要实现的内容如下图所示。

摘要
也就是说,当我们创建一个新的进程的时候,运行当前脚本的的shell将会在运行这个命令后进入阻塞状态,等待这个进程结束后才会继续。也就是如上图实际运行情况所示。但是并不符合我们的预期。
换句话说,也就是我们第一行写的是运行一个程序,第二行是第一行运行的那个程序中需要执行的输入,而我们的写法并不会输入到第一行运行的那个程序中。
实际实现
echo Processing...
sftp mysftp@127.0.0.1
put test.sh /upload/test.sh
echo Done...

echo Processing...
sftp mysftp@127.0.0.1 <<- EOF
put test.sh /upload/test.sh
exit
EOF
echo Done...

上图皆可说明情况。
解释
在这种情况下,目前还没有实现输入密码,但是巧的是,真正项目上是通过RSA进行验证的,不需要密码,由于是Demo和时间关系,没有做那些东西,但是PUT命令的输入地点是正确的,达成了最终目的。

评论 0
还没有评论,来说点什么吧。