首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SFTP将使用bash脚本发送文件

问SFTP将使用bash脚本发送文件
EN

Stack Overflow用户
提问于 2012-08-01 00:14:07
回答 3查看 62.1K关注 0票数 17

我使用的是密钥身份验证,所以密码不是问题。我有一个我知道其名称的文件,我只是想通过sftp将其发送到另一台机器。

我试着搜索,但在任何地方都找不到这个(看似简单的)问题。也许我的Google-fu今天只是让我失望了。

简而言之:我在我的本地机器上,想要发送一个文件(test.txt)到远程机器。已提供授权密钥。基本上,我想自动执行这三个步骤:

代码语言:javascript
复制
sftp root@remote:/root/dropoff
put test.txt
quit

有没有一个简单的bash命令可以让我实现自动化?我见过的惟一选项是使用bash脚本执行put/quit,并使用-b选项运行它。还有比这更干净的吗?(我对使用任何其他应用程序/工具不感兴趣。)

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 00:26:18

您说过您对其他工具不感兴趣,但scp是无人值守文件传输的更好选择。下面是一个scp示例:

代码语言:javascript
复制
scp test.txt root@remote:/root/dropoff
票数 10
EN

Stack Overflow用户

发布于 2013-07-13 06:51:59

我知道这是一个旧版本,但是您也可以使用Here Document将参数传递给命令

您可以将以下内容放入脚本中:

代码语言:javascript
复制
# The following is called a HERE document
sftp <user>@<remote> << SOMEDELIMITER 
  put test.txt
  ... # any commands you need to execute via sftp
  quit
SOMEDELIMITER

每个额外的命令都将被输入到<<之前的命令中,SOMEDELIMTER可以是您想要的任何值。

scp是一个很好的选择,但是当我从linux推送到windows时,sftp是我唯一能使用的工具,而你却在服务模式下使用FreeSSHD!

票数 44
EN

Stack Overflow用户

发布于 2018-08-10 21:12:19

当这个问题被问到时,我不知道sftp是如何配置的。无论如何,6年后,您可以将像put这样的sftp命令放入一个文件中,然后在最初的sftp调用中引用该文件。这使得整个过程完全非交互式,并且可以轻松配置:

代码语言:javascript
复制
sftp -i /path/to/ssh-key -b /path/to/sftp-commands.txt root@remote:/root/dropoff

....Where sftp-commands.txt仅包含

代码语言:javascript
复制
put test.txt; quit
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11744547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档