nepixl
Goto Top

Automatisierter Ordnerupload auf FTP Server

Hi zusammen,

habe den Auftrag bekommen, monatlich genau einen Ordner (Immer an gleicher Position: C:\XYZ\KundenName) inkl. Inhalt (kann Ordner UND Dateien enthalten, z.T. auch mit tieferen Pfaden) auf einen speziellen FTP Server hochzuladen.
Im Idealfall soll der Kunde nur eine Log-File zu sehen bekommen nach Abschluss bzw ein "Erfolgreich" würde mir reichen, zur Fehlerdiag wäre eine Logfile jedoch super praktisch.

Aktuell scheitere ich an den FTP Clients:
- Windows FTP Client => Kann scheinbar kein mput (batch) // Schreibt keine Logfile
- WinSCP baut es die Verbindung nicht anständig auf (batch)
- ncftp lässt keine "Stapelverarbeitung" zu. Verbindungsaufbau via Batch passt, automatisches Verzeichnis switchen bzw. Uploadbefehl scheint nur bei manueller Eingabe zu funktionieren. (batch)

Leider sind meine VB(A) Kenntnisse nicht sehr besonders um es mit einem GUI zu versehen. Im besten Fall: Manager "App" mit der man eine Config generiert (Servername, Kundenname, ...) die man in der 2ten "Kundenapp" nur noch einfügen muss. Der Kunde klickt auf "Go" bzw. ggf. via Aufgabenplaner und der Upload beginnt.
^ das wäre die schönste Lösung, den Stress muss sich aber keiner von Euch machen! face-smile

Habe schon einige Codeschnipsel von Euch (Administrator.de) verwendet jedoch ohne so richtigen Erfolg.
Ebenfalls mehrere FTP-Pages etc durchsucht und so manches zusammengebastelt aber eben auch nicht mit gewünschtem Erfolg. Irgendwo fehlt immer eine -für mich wichtige Abhängigkeit.


Hättet Ihr mir einen Ansatz? Eine Idee? Evtl sogar einen Beispielcode?

Freue mich auf eure Feedback!

Viele Grüße
Nico

Content-ID: 333770

Url: https://administrator.de/contentid/333770

Ausgedruckt am: 24.11.2024 um 02:11 Uhr

Pjordorf
Pjordorf 31.03.2017 um 13:19:09 Uhr
Goto Top
Hallo,

Zitat von @nepixl:
- Windows FTP Client => Kann scheinbar kein mput (batch) // Schreibt keine Logfile
Braucht es denn mput? Kannst ja mit Schleifen....

- WinSCP baut es die Verbindung nicht anständig auf (batch)
Warum wird die Verbindung nicht anständig aufgebaut? Was passt an der unanständig aufgebauten Verbindung nicht?

Aktiv FTP?
Passiv FTP?
Firewalls?
FTP Proxy?

Der Kunde
Dein Kunde?

Irgendwo fehlt immer eine -für mich wichtige Abhängigkeit.
Welche da wären?
Wast hast du bisher?

Gruß,
Peter
Lochkartenstanzer
Lochkartenstanzer 31.03.2017 aktualisiert um 13:23:44 Uhr
Goto Top
132692
132692 31.03.2017 um 13:24:27 Uhr
Goto Top
- WinSCP baut es die Verbindung nicht anständig auf (batch)
Nö, wenn man's richtig macht null Problem! Ohne Fehlermeldung kann man dir nicht helfen!

Gruß p.
nepixl
nepixl 31.03.2017 um 13:27:40 Uhr
Goto Top
Hallo Peter,

danke erstmal für Deine Antwort.


Braucht es denn mput? Kannst ja mit Schleifen....
Uh, wie würde das aussehen!? Das Problem: es gibt x-Dateiendungen. Mal PDF, mal xlsx, mal nur txt .. -Wie würde eine Schleife realisiert werden in so einem Fall?

Warum wird die Verbindung nicht anständig aufgebaut? Was passt an der unanständig aufgebauten Verbindung nicht?
Via Batch mag Er die Verbindung garnicht aufbauen, habe da auch relativ wenig Zeit für investiert da ich es eigentlich am liebsten mit Bordmitteln wie Win-FTP realisieren würde. (Kommt auf einen Terminalserver, mit recht hohen Einschränkung, variiert von Kunde zu Kunde)

Dein Kunde?
Mein (zukünftiger) Kunde, insofern das Projekt klappt. face-smile

Welche da wären?
Das ganze sollte DAU-sicher betrieben werden. Sprich: Kunde Klickt auf Verknüpfung die auf 'ne Batch zeigt und der automatismus startet und endet vollkommen automatisch, mit anderen Worten: soviel Automatismus, so wenig Kundeninteraktion wie möglich.
Gerne darf es dem Kunden anschließend ein "Erfolgreich" melden.

Wast hast du bisher?
Autoconnect läuft via WinFTP. Über mehrere verlinkte Batches wird das VZ hochgeladen in den Ordner den ich mag, jedoch läd es auch meine "Script" Files mit hoch(?!) - Log läuft garkeins.

Gruß Nico
nepixl
nepixl 31.03.2017 um 13:30:30 Uhr
Goto Top
ncftpput? ncftpget?

Bereits probiert, da habe ich aber das Problem dass ich nicht weiter wie bis nach den Connect komme.
Geschichten wie cd schlagmichtod oder mput geht nur bei manueller Eingabe ins CMD, leider fragt er die Batch nicht weiter ab wenn der Connect erfolgreich war.

start.bat
ncftpls -u USERNAME -p KENNWORT ftp://ftp.test.com
cd WSS
mput -r C:\WSS\v3\KUNDENNAME\

Leider macht er ab cd nicht weiter.. face-sad
132692
132692 31.03.2017 aktualisiert um 13:35:47 Uhr
Goto Top
Lochkartenstanzer
Lösung Lochkartenstanzer 31.03.2017 aktualisiert um 13:41:39 Uhr
Goto Top
Zitat von @nepixl:

ncftpput? ncftpget?

Bereits probiert, da habe ich aber das Problem dass ich nicht weiter wie bis nach den Connect komme.
Geschichten wie cd schlagmichtod oder mput geht nur bei manueller Eingabe ins CMD, leider fragt er die Batch nicht weiter ab wenn der Connect erfolgreich war.

start.bat
> ncftpls -u USERNAME -p KENNWORT ftp://ftp.test.com
> cd WSS
> mput -r C:\WSS\v3\KUNDENNAME\
> 

Leider macht er ab cd nicht weiter.. face-sad


Das hat aber überhaupt mnichts mit ncftpget und ncftpput zu tun. Du bennutzt da ganz andere Kommandos.

Einfach
ncftpput -u user -p password -R ftp://ftp.test.com /WSS  C:\WSS\v3\KUNDENNAME\
eingeben. (Beitspiel orientiert sich an Deinen obigen Angaben)

Hast Du überhaupt gelesen, was ich verlinkt habe?

lks
nepixl
nepixl 31.03.2017 um 13:48:07 Uhr
Goto Top
Das hat aber überhaupt mnichts mit ncftpget und ncftpput zu tun. Du bennutzt da ganz andere Kommandos.
Gekonnt übersehen im FAQ. Danke für deinen Hinweiß!


Einfach
ncftpput -u user -p password -R ftp://ftp.test.com /WSS C:\WSS\v3\KUNDENNAME\
eingeben. (Beitspiel orientiert sich an Deinen obigen Angaben)

Sieht wesentlich besser aus als was ich da fabriziert habe und vorallem: es funktioniert! So einfach KANN es sein (wenn man sich aufmerksam beließt!)

Hast Du überhaupt gelesen, was ich verlinkt habe?
Angeschnitten! - Bedanke mich bei Dir, habe den Wald vor lauter Bäumen nicht gesehen.

Bekommen wir da noch eine Art Logfile nach Beendigung der Übertragung zu stande?

Besten Dank lks! (Glaubst garnicht wie glücklich Du mich eben gemacht hast! xD)
Lochkartenstanzer
Lösung Lochkartenstanzer 31.03.2017 aktualisiert um 13:56:16 Uhr
Goto Top
Zitat von @nepixl:

Bekommen wir da noch eine Art Logfile nach Beendigung der Übertragung zu stande?

Moin,

einfach den Returncode auswerten und in eine Logdatei schreiben:

    ncftpput returns the following exit values:

 0        Success.
 1        Could not connect to remote host.
 2        Could not connect to remote host - timed out.
 3        Transfer failed.
 4        Transfer failed - timed out.
 5        Directory change failed.
 6        Directory change failed - timed out.
 7        Malformed URL.
 8        Usage error.
 9        Error in login configuration file.
10        Library initialization failed.
11        Session initialization failed.

lks
nepixl
nepixl 31.03.2017 um 13:57:07 Uhr
Goto Top
Stark!
Ich danke euch! -Toll dass es diese Community gibt. face-smile

Viele Grüße und ein schönes Wochenende.
Nico