Sie sind hier:
»
PC + Co.
»
BATch-Ecke
»
FTP
Tipp
In der Quicksearch-Box rechts können Sie den Namen eines Windows-Kommandos oder
Kommandozeilentools eingeben
und kommen so schnell zu dessen Beschreibung.
BATch-Dateien - automatisierter FTP-Transfer
FTP-Befehle und wie man den Dateitransfer automatisiert.
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:
ftp < hole_logfiles.ftp
Seitenanfang
Download
In der hier angegebenen ZIP-Datei finden Sie die HOLE_LOGFILES.BAT:
hole_logfiles.zip (1 kB)
Seitenanfang