Frage

Jeden Monat stellen wir senden Berichte an einen Server mit FTP. Wir führen eine Abfrage in einer Datenbank der Dateien dann mit der FTP-Funktionalität in LabVIEW erstellen, um die Übertragung zu tun. Dies läuft auf einem Windows-System.

Das funktioniert gut, aber jetzt haben wir Schalter auf SFTP und das CopSSH Paket hat empfohlen worden. Da LabVIEW keine nativen SFTP-Funktionalität hat, schauen wir auf, wie wir die sftp.exe Anwendung von CopSSH verwenden können.

Von der Eingabeaufforderung haben wir die Verschlüsselung und machten die anfängliche Verbindung mit sftp username@host und traten in das Passwort einrichten. Dies wurde durch das Team auf der Server-Seite bestätigt so die Verbindung zum Server aufgebaut wird. Jetzt verwenden wir nur sftp username@host und kein Kennwort erforderlich ist.

Wo wir kämpfen, ist, wie die Übertragung von unserem LabVIEW-Code zu starten. Wir sind in der Lage Systembefehle rufen Sie den System-Exec VI verwenden, aber ist es eine Möglichkeit, eine Liste von Funktionen an die SFTP ausführbaren Datei zu übergeben?

Die Befehle verwendet, um die Dateien zu übertragen, wenn wir sie an der Eingabeaufforderung sind:

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

Das funktioniert an der Eingabeaufforderung, aber ich bin auf der Suche nach nur mit einer Liste von Dateien zu übertragen, die SFTP ausführbaren nennen. Ich glaube nicht, das spezifisch für LabVIEW sein würde, wie Sie eine Batch-Datei von einem geplanten Auftrag ausführen nutzen könnten.

LabVIEW können ActiveX aufrufen und .net, aber wir müssen wirklich diese spezielle Anwendung nutzen.

War es hilfreich?

Lösung

Wenn copssh des sftp.exe ein Befehlszeilenprogramm ist und System Exec in Ihrer Version von LabVIEW hat den ‚Standardeingabe‘ Terminal (gegenwärtig mindestens seit 8,5), sollten Sie in der Lage sein, einfach die Befehle verdrahten Sie SFTP mögen. exe in die Standard-Eingangsklemme laufen.

Wenn das nicht funktioniert aus irgendeinem Grund, könnten Sie PuTTY verwenden statt copssh? Die Dokumentation sagt PuTTYs PSFTP Komponente , dass es ausführen kann, die -b-Befehlszeilenoption, zB

eine Folge von Befehlen in einer Skriptdatei
psftp user@hostname -b myscript.scr

, damit Sie Ihr LabVIEW-Programm erstellen Sie die Skriptdatei führen Sie es mit dem System Exec haben könnten.

Andere Tipps

Ich habe WinSCP wurde verwendet, die eine Kommandozeilenversion hat, winscp.com. Es unterstützt SFTP und ermöglicht synchronisieren, keepuptodate, erhält sie, Put- und löscht auf Ordner und Dateien. Ein Wort der Warnung, hängt keepuptodate auf eine ununterbrochene Verbindung. Obwohl WinSCP automatisch eine Verbindung Remake kann, kann keepuptodate nicht. Ich vermute, es basiert auf Microsofts .NET SystemIO Filesystemwatcher. Ich deshalb eine regelmäßige Synchronisieren machen einen Spiegel meiner Quelle Ordnerstruktur auf dem entfernten Ziel zu halten.

Sie mischen SSH und SFTP. SSH öffnet eine sichere Verbindung, aber SFTP ist ein separates Protokoll, das über SSH-Verbindung ausgeführt wird, und erfordert einen separaten Tunnel. In OpenSSH (und die es Windows-Port copSSH) ist es sftp.exe Anwendung, die SFTP tut.

Jetzt über FTP vs SFTP. Bitte überprüfen Sie einen Artikel, der erklärt den Unterschied zwischen SFTP und FTP (S) . Wenn LabView FTP unterstützt, bedeutet dies nicht helfen, wenn Sie SFTP-Übertragungen durchführen müssen.

Ich weiß nicht, ob Sie externen ActiveX-Steuerelemente in LabView verwenden können. Wenn Sie können, können Sie unsere SFTP ActiveX-Steuerelement zu überprüfen, dass Wille lassen Sie die Übertragung tun. Wenn alles, was Sie rufen externe Anwendung tun, dann würden Sie müssen copSSH des sftp.exe verwenden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top