FTP-Task - Datei zeitgesteuert per FTP übertragen

Ziel

Eine Datei soll aus einem Ordner per FTP in einen bestimmten Ordner eines FTP-Servers übertragen werden.

Benötigt werden drei Dateien:
- die durch den Task auszuführende Datei
- die Datei mit den FTP-Kommandos, die eine Log-Datei erstellt
- die zu-uebertragende-datei.xyz.
Alle Dateien müssen auf dem absendenden System in einem Ordner sein.

Task-Datei

Für diese Datei wird auf dem Windows-System ein Task erstellt, zu welcher Zeit und an welchen Tagen sie ausgeführt werden soll. Name hier autotask.cmd

rem @echo off
echo ****************************************
echo Automatisiertes Uebertragen
echo einer Datei der per FTP
echo zu einem Verzeichnis im Netzwerk
echo ****************************************
echo .
ftp -n -d -s:ftpkommandos.ftp ip.adr.es.se > uebertragung.log
echo Fertig!

Bedeutung der Kommandos

-n unterdrückt das automatische Anmelden.

-d zeigt alle Kommandos, welche zwischen Client und Server ausgetauscht werden.

-s:dateiname gibt den Dateinamen an, der die weiteren Informationen enthält. Leerzeichen ist nicht erlaubt.

Der Abschnitt ftpkommandos.ftp bezeichnet die Datei, aus der die Zugangsdaten kommen sollen. Um die Datei leichter bearbeiten zu können, kann sie auch ftpkommandos.txt genannt werden. Diese wie alle anderen Änderungen müssen dann natürlich in den betreffenden Dateien gleich sein. Den Ausdruck ip.adr.es.se ersetzen sie durch die IP-Adresse des Zielcomputers.
Mit > uebertragung.log wird der ganze Vorgang in einer Logdatei festgehalten. Die trägt immer das aktuelle Tagesdatum in den Eigenschaften.

FTP-Kommandos

Diese Datei enthält die Kommandos, welche Sie sonst manuelle in die Konsole eingeben:

ftp ip.adr.es.se
user benutzername passwort
cd importordner
put zu-uebertragende-datei.xyz
bye

Mit ftp ip.adr.es.se wird die Verbindung zum Zielsystem aufgebaut. Die Worte benutzername und passwort ersetzen Sie durch die tatsächlichen Angaben. Mit cd importordner wird, sofern dies erforderlich sein sollte, in einen bestimmten Ordner gewechselt. In diesem Beispiel heißt er einfach importordner. Schließlich überträgt put zu-uebertragende-datei.xyz die Datei mit dem Namen zu-uebertragende-datei.xyz. Am Schluss beendet bye die Verbindung.

Übertragungsart binär

Wenn als Übertragungsart 'binär' eingestellt werden soll, muss dies angegeben werden. Ohne diese Einstellung wurdenbei einem Test Office-Dateien zwar übertragen, ließen sich jedoch nicht öffnen.

ftp ip.adr.es.se
user benutzername passwort
binary
cd importordner
put zu-uebertragende-datei.xyz
bye

Log-Datei

So könnte die Log-Datei aussehen:

Verbindung mit ip.adr.es.se wurde hergestellt.

220 Microsoft FTP Service
ftp> Ungueltiger Befehl

ftp> ftp ip.adr.es.se
---> user benutzername passwort
USER benutzername
331 Password required for benutzername.
---> PASS passwort
230 User benutzername logged in.
ftp> ---> cd importordner
CWD import
250 CWD command successful.
ftp> ---> put zu-uebertragende-datei.xyz
PORT 10,200,32,51,11,214
200 PORT command successful.
---> STOR zu-uebertragende-datei.xyz
150 Opening ASCII mode data connection for zu-uebertragende-datei.xyz.
226 Transfer complete.
FTP: 64d Bytes gesendet in 0,00Sekunden 13186000,00KB/s

ftp> ---> bye
QUIT
221

Woher ftp> Ungueltiger Befehl stammt, kann ich zur Zeit nicht sagen. Gleichwohl hat sich diese Art der Übertragung in der Praxis über Jahre hinweg bewährt.