代码之家  ›  专栏  ›  技术社区  ›  Kibbee

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

  •  1
  • Kibbee  · 技术社区  · 15 年前

    这很好,但现在我们必须切换到使用SFTP和 CopSSH

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

    我们正在努力的地方是如何从LabVIEW代码发起传输。我们可以使用systemexecvi调用系统命令,但是有没有办法将函数列表传递给 SFTP 可执行文件?

    在命令提示符下键入文件时,用于传输文件的命令有:

    sftp username@host
    put c:/Data/File1.txt remoteFile1
    put c:/Data/File2.txt remoteFile2
    put c:/Data/File3.txt remoteFile3
    quit
    

    这可以在命令提示符下工作,但我只想调用sftp可执行文件,其中包含要传输的文件列表。我不认为这是特定于LabVIEW的,因为您可以使用批处理文件从计划作业运行。

    3 回复  |  直到 15 年前
        1
  •  1
  •   nekomatic    15 年前

    如果科普什sftp.exe文件是一个命令行实用程序,并且您的LabVIEW版本中的System Exec有“标准输入”终端(至少从8.5开始就有),您应该能够简单地连接所需的命令sftp.exe文件进入标准输入端。

    如果因为某种原因那不起作用,你能用吗 PuTTY documentation for PuTTY's PSFTP component 表示它可以使用-b命令行开关在脚本文件中执行一系列命令,例如。

    psftp user@hostname -b myscript.scr
    

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

        2
  •  2
  •   sluice    14 年前

    我一直在使用命令行版本的WinSCP,winscp.com网站. 它支持sftp,并允许对文件夹和文件进行同步、keepuptodate、获取、放置和删除。警告一句,keepuptodate依赖于一个完整的连接。尽管WinSCP可以自动重新建立连接,但keepuptodate不能。我怀疑它是基于微软的.NET SystemIO FileSystemWatcher。因此,我定期进行同步,以便在远程目标上保留源文件夹树的镜像。

        3
  •  1
  •   Eugene Mayevski 'Callback    15 年前

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

    现在谈谈FTP和SFTP。请看一篇解释 the difference between SFTP and FTP(S)

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