BATch-Dateien - automatisierter FTP-Transfer
Auf meiner Webseite befinden sich einige Dateien, die durch Eingaben der Benutzer verändert werden: Das Gästebuch und die Suchanfragen werden in je einer Datei aufgezeichnet. Diese lade ich mit einem FTP-Skript auf meinen Rechner herunter, sobald ich online gehe.Ich weiss, dass FTP ein unsicheres Protokoll ist, da alle Daten einschl. dem Passwort unverschlüsselt übertragen werden.
FTP-Kommandos
Mit Windows wird ein FTP-Client mitgeliefert: die ftp.exe im
Windows-Verzeichnis. Wer die FTP-Kommandos nicht kennt,
bevorzugt sicherlich grafische FTP-Clients.
An dieser Stelle brauche ich aber die Kommandos, weil ich
in verschiedenen Ordnern immer ein und dieselbe Datei
herunterlade. Welche Kommandos der FTP-Client versteht, sehen
Sie nach der Eingabe von help im FTP-Modus:
D:\>ftp Ftp> help Befehle können abgekürzt werden. Befehle sind: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir Ftp> by D:\>
Einen kurzen Hinweis, wofür die einzelnen Kommandos gut sind, sehen Sie nach der Eingabe help [Kommando].
Seitenanfang
FTP-Skript zusammenstellen
Mit diesen Kommandos muss unser FTP-Automatismus beschrieben werden können.
Ich erkläre mal die Wichtigsten für den Einstieg:
- OPEN [Name des FTP-Servers]
Öffnet eine FTP-Verbindung zum genannten FTP-Server. Es folgen daraufhin die Abfrage von User und Passwort
- ASCII (auch ASC) oder BIN
Übertragungsmodus auf Ascii oder Binär setzen.
- CD [Verzeichnis]
Wechsel des Verzeichnisses am FTP-Server
- LCD [Verzeichnis]
Wechsel des Verzeichnisses am Client (auf dem eigenen Rechner)
- GET [Quell-Datei am Server] [Ziel-Datei lokal]
lädt eine einzelne (!) Datei herunter (*). Wenn Name der Zieldatei fehlt, wird der Dateiname der Quelldatei übernommen.
- PUT [Quell-Datei lokal] [Ziel-Datei am Server]
lädt eine einzelne Datei hoch. Wenn Name der Zieldatei fehlt, wird der Dateiname der Quelldatei übernommen.
- CLOSE; BYE
CLOSE schliesst eine FTP-Verindung; mit BYE wird zusätzlich der FTP-Modus verlassen
(*) Anmerkungen:
Um mehrere Dateien auf- oder herunterzuladen gibt es die Befehle MPUT und MGET. Allerdings kann man damit nicht rekursiv einen ganzen Verzeichnisbaum verarbeiten - dies ist mit FTP nicht möglich. An dieser Stelle helfen andere Tools weiter, wie z.B. NCFTP (Freeware für div. Plattformen - u.a. auch Windows).
So sieht mein Skript, dass in der Datei hole_logfiles.ftp gespeichert wurde, in vereinfachter Form aus. Es entspricht der Abfolge der manuell einzugebenden FTP-Kommandos, wobei jede Zeile mit [Return] abgeschlossen wird.
open [FTP-Server] [FTP-username] [Passwort] hash asc lcd F:\Webserver\htdocs\searchlog cd /searchlog get searchhistory.txt prompt lcd F:\Webserver\htdocs\logfiles cd /logfiles mget * by
Was sicherheitsrelevant ist, ist zweifelsohne die Angabe von Username und Passwort im Klartext. Für private Anwendungen daheim ist dies aber sicher kein Hindernis.
Seitenanfang
Aufruf via Batchfile
Die ftp.exe kann neben dem interaktiven Modus (an der Kommandozeile)
ein Skript verarbeiten, indem der Parameter -s hergenommen wird:
@echo off echo --- starte FTP-Transfer... ftp -s:hole_logfiles.ftp echo --- fertig. pause
Unter LINUX/ UNIX kann man das FTP-Skript in das ftp einleiten:
Seitenanfangftp < hole_logfiles.ftp
Download
In der hier angegebenen ZIP-Datei finden Sie die HOLE_LOGFILES.BAT:
hole_logfiles.zip (1 kB)
Seitenanfang