首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用copssh通过sftp自动发送文件

使用copssh通过sftp自动发送文件
EN

Stack Overflow用户
提问于 2010-09-09 18:32:31
回答 3查看 4.9K关注 0票数 1

每个月我们都会使用FTP将报告发送到服务器。我们在数据库上运行查询来创建文件,然后使用LabVIEW中的ftp功能进行传输。它在Windows系统上运行。

这可以很好地工作,但现在我们必须切换到使用SFTP,并且推荐使用CopSSH包。由于LabVIEW没有原生SFTP功能,我们正在研究如何从CopSSH使用sftp.exe应用程序。

在命令提示符下,我们设置了加密,使用sftp username@host建立了初始连接,并输入了密码。服务器端的团队已经确认了这一点,因此已经建立了到服务器的连接。现在我们只使用sftp username@host,不需要密码。

我们正在苦苦挣扎的是如何从我们的LabVIEW代码启动传输。我们可以使用system Exec VI调用系统命令,但是有没有办法将函数列表传递给SFTP可执行文件?

当我们在命令提示符下键入文件时,用于传输文件的命令如下:

代码语言:javascript
复制
sftp username@host
put c:/Data/File1.txt remoteFile1
put c:/Data/File2.txt remoteFile2
put c:/Data/File3.txt remoteFile3
quit

这是从命令提示符运行的,但我希望只调用带有要传输的文件列表的sftp可执行文件。我不认为这是特定于LabVIEW的,因为您可以使用批处理文件从计划的作业运行。

LabVIEW可以调用ActiveX和.net,但是我们确实需要使用这个特定的应用程序。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-09-09 22:42:49

如果copssh的sftp.exe是一个命令行实用程序,并且您的LabVIEW版本中的System Exec具有“标准输入”终端(至少在8.5版本中存在),那么您应该能够简单地将您希望sftp.exe运行的命令连接到标准输入终端中。

如果由于某些原因不起作用,您可以使用PuTTY而不是copssh吗?documentation for PuTTY's PSFTP component说它可以使用-b命令行开关执行脚本文件中的一系列命令,例如

代码语言:javascript
复制
psftp user@hostname -b myscript.scr

因此,您可以让LabVIEW程序创建脚本文件,然后使用System Exec运行它。

票数 1
EN

Stack Overflow用户

发布于 2010-10-26 17:25:35

我一直在使用WinSCP,它有一个命令行版本winscp.com。它支持sftp,并允许对文件夹和文件进行同步、keepuptodate、get、put和delete操作。一句话警告,keepuptodate依赖于一个不间断的连接。虽然WinSCP可以自动重新建立连接,但是keepuptodate不能。我怀疑它是基于微软的.NET SystemIO FileSystemWatcher。因此,我定期进行同步,以在远程目标上保留我的源文件夹树的镜像。

票数 2
EN

Stack Overflow用户

发布于 2010-09-09 19:55:15

您正在混合使用SSH和SFTP。SSH打开安全连接,但SFTP是在SSH连接上运行的单独协议,需要单独的隧道。在OpenSSH (它是Windows Port,copSSH)中,sftp.exe应用程序执行SFTP。

现在讨论FTP与SFTP。请查看解释the difference between SFTP and FTP(S)的文章。如果LabView支持FTP,当您需要执行SFTP传输时,这对您没有帮助。

我不知道您是否可以在LabView中使用外部ActiveX控件。如果可以,欢迎您查看我们的SFTP ActiveX control,这样您就可以进行转账了。如果您所能做的就是调用外部应用程序,那么您就必须使用copSSH的sftp.exe。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3675753

复制
相关文章

相似问题

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