111000
Goto Top

FTP-Massenupload über Batch (CMD-Script) und Erstellung eines Log-Files

Hallo Zusammen,

ich versuche mich jetzt schon seit einiger Zeit einzulesen. Komme aber nicht wirklich weiter.

Vielleicht kann mir jemand zu folgendem Thema ein CMD-Script erstellen:

Auf einem Server soll über den Task-Planer alle fünf Minuten ein CMD-Script ausgeführt werden das folgendes tut:

Es sollen alle Dateien mit der Endung txt, pdf, rdy aus dem Verzeichnis c:\upload auf einen FTP-Server übertragen werden.

Nach erfolgreicher Übertragung sollen die Dateien aus c:\upload gelöscht werden.

Außerdem soll ein Log-File erstellt werden, dass u.a. den Dateiname beinhaltet, den Zeitstempel des Uploads und eventuelle Fehlermeldungen.


Vielleicht gibt es auch ein Tool das genau das kann? Wichtig wäre, dass es auf einem Windows-Server im Hintergrund als Dienst bzw. als Task ausgeführt wird.


Schon mal vielen Dank für eure Hilfe.

Gruß
Tom

Content-ID: 219626

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

Printed on: October 7, 2024 at 01:10 o'clock

colinardo
Solution colinardo Oct 20, 2013, updated at Mar 09, 2014 at 00:07:03 (UTC)
Goto Top
Hallo Tom,
eine solche Aufgabe könntest du mit dem Tool WinSCP (keine Installation nötig) umsetzen welches einen Batch-Modus enthält.
back-to-topZur Vorgehensweise:
Wenn du Dir WinSCP heruntergeladen hast erstellst du dir zunächst ein Script-File welches die Befehle enthält die WinSCP nachher im Batch-Modus ausführt.
Ein solches Script-File könnte dann folgendermaßen aussehen:
option confirm off
open ftp://USERNAME:PASSWORD@SERVER.DE
option transfer binary
put c:\Upload\*.txt c:\Upload\*.pdf c:\Upload\*.rdy /REMOTE/ORDNER/
close
exit
WinSCP hat zum Verbinden mit Servern unterschiedliche Möglichkeiten, je nachdem ob es ein FTP/FTPS/SFTP Server auf Remote-Seite ist. Mehr dazu steht in der Doku zu WinSCP.
Im Beispiel wird ein ganz normaler FTP-Server verwendet dem man USERNAMEN und PASSWORT in Zeile 2 übergibt. Die zu kopierenden Dateien werden dann in Zeile 4 angegeben (WildCards werden unterstützt), der letze Parameter ist der Zielordner auf dem FTP-Server welcher mit einem Slash enden muss.

Nun kannst du dieses Script mit der WinSCP.exe auf der Kommandozeile so testen:
winscp.exe /console /script=C:\deinUploadScript.txt /log=c:\logfile.txt
Gleichzeitig kannst du hier mit dem Parameter /log=c:\logfile.txt eine Log-Datei erstellen lassen.
Sollte das Script wie gewünscht funktionieren, kannst du die obige Zeile in eine Batchdatei schreiben, und diese dann mit dem Scheduler von Windows regelmässig im gewünschten Intervall ausführen lassen.

Eine Referenz welche Befehle in der Script-Datei möglich sind findest du hier. Unter anderem lässt sich mit dem Tool auch automatisch ein lokales Verzeichnis mit dem FTP-Server synchronisieren.

Grüße Uwe
111000
111000 Oct 30, 2013 at 15:00:19 (UTC)
Goto Top
Hallo Uwe!

Genial, das war genau das was ich gesucht habe.

Vielen Dank für Deine Hilfe.

Tom